Scala in 10 minutes
Upcoming SlideShare
Loading in...5
×
 

Scala in 10 minutes

on

  • 291 views

My

My

Statistics

Views

Total Views
291
Views on SlideShare
291
Embed Views
0

Actions

Likes
0
Downloads
3
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Scala in 10 minutes Scala in 10 minutes Presentation Transcript

    • Never say no to
    • Зачем?Free lunch is over 
    • Про scala за 3 минуты• Статическая типизация(!)• Платформы – Java – .Net• Functional… – Функции высшего порядка – Хвостовая рекурсия – Отложенные вычисления• Pattern matching всего на свете• Компактный синтаксис(по сравнению с Java)• Обобщенные синтаксические конструкции
    • Concurrency• Actors – Идея взята из Erlang• Immutabe values• Concurrent collections – val doubled = list.par map(x => x * 2) – конечно надо быть осторожным• Akka – Software transactional memory – futures
    • OOП?• Есть конечно!• Намного меньше boilerplate code чем в Java(покажу дальше)• Нет множественного наследования – Зато есть traits – Это такие интерфейсы c частичной реализацией• static Objects
    • Немного синтетики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
    • //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)
    • Идустрии• Trading platforms• Financial modeling• Simulation – domain-specific languages• Web platforms – Play Framework – Lift
    • Компании• Twitter• Foursquare• Credit Suisse• LinkedIn• The Guardian• Sony, IBM, Nasa, Amazon etc…
    • Что есть у нас?• Один боевой проект• Распространяется по компании как зараза – Разговоры на кухне приобрели функциональный оттенок – 16 человек на момент презентации проходят курсы.
    • Что дальше?• coursera.org “Functional programming in Scala” от создателя языка.• Много действительно хороших книг