Scala in 10 minutes

354 views

Published on

My

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
354
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Scala in 10 minutes

  1. 1. Never say no to
  2. 2. Зачем?Free lunch is over 
  3. 3. Про scala за 3 минуты• Статическая типизация(!)• Платформы – Java – .Net• Functional… – Функции высшего порядка – Хвостовая рекурсия – Отложенные вычисления• Pattern matching всего на свете• Компактный синтаксис(по сравнению с Java)• Обобщенные синтаксические конструкции
  4. 4. Concurrency• Actors – Идея взята из Erlang• Immutabe values• Concurrent collections – val doubled = list.par map(x => x * 2) – конечно надо быть осторожным• Akka – Software transactional memory – futures
  5. 5. OOП?• Есть конечно!• Намного меньше boilerplate code чем в Java(покажу дальше)• Нет множественного наследования – Зато есть traits – Это такие интерфейсы c частичной реализацией• static Objects
  6. 6. Немного синтетикиdef max(a,b) = if (a > b) a else bclass Person(val name: String, val age: Int) { require(name.length != 0) //will generate exception require(age > 0) def and(that: Person): Love = new Love(this, that)}val Mike = new Person(“Mike", 17)val Jane = new Person("Jane", 23)val love = Mike and Jane
  7. 7. //Javaimport java.util.ArrayList;…Person[] people;Person[] minors;Person[] adults;{ ArrayList<Person> minorsList = new ArrayList<Person>(); ArrayList<Person> adultsList = new ArrayList<Person>(); for (int i = 0; i < people.length; i++) (people[i].age < 18 ? minorsList : adultsList) .add(people[i]); minors = minorsList.toArray(people); adults = adultsList.toArray(people);}//Scalaval people: Array[Person]val (minors, adults) = people partition(_.age > 18)
  8. 8. Идустрии• Trading platforms• Financial modeling• Simulation – domain-specific languages• Web platforms – Play Framework – Lift
  9. 9. Компании• Twitter• Foursquare• Credit Suisse• LinkedIn• The Guardian• Sony, IBM, Nasa, Amazon etc…
  10. 10. Что есть у нас?• Один боевой проект• Распространяется по компании как зараза – Разговоры на кухне приобрели функциональный оттенок – 16 человек на момент презентации проходят курсы.
  11. 11. Что дальше?• coursera.org “Functional programming in Scala” от создателя языка.• Много действительно хороших книг

×