Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

π•­π–Šπ–Žπ–…π–Šπ–—π–”

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Scala?

Scala(SCAlable LАnguage) β€” ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ язык программирования, спроСктированный ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΌ ΠΈ типобСзопасным для простого ΠΈ быстрого создания ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, ΡΠΎΡ‡Π΅Ρ‚Π°ΡŽΡ‰ΠΈΠΉ возмоТности Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Scala?

  • Π’Ρ‹Ρ€Π°Π·ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ Π³ΠΈΠ±ΠΊΠΈΠΉ
  • ЯвляСтся языком ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния
  • Активно развиваСтся
  • Π•ΡΡ‚ΡŒ REPL(Read–eval–print loop)
  • ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ Π½Π° JVM(Java Virtual Machine)
  • Π‘ΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с Java
  • Π•ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ компиляции Π² JavaScript

Компании Π²Π΅Π΄ΡƒΡ‰ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π½Π° Scala

Twitter, LinkedIn, Apple, Foursquare, The Guardian, Coursera, Quora, Yandex, Π’ΠΈΠ½ΡŒΠΊΠΎΡ„Ρ„, Luxoft, Verizon, Airbnb, Walmart Canada, Google

Установка

  • Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ JDK
  • ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° сайт scala-lang.org
  • ΠΠ°ΠΆΠ°Ρ‚ΡŒ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ DOWNLOAD
  • Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ установку INTELLIJ IDEA ΠΈ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ инструкции
  • ΠŸΡ€ΠΈ установкС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ установку ΠΏΠ»Π°Π³ΠΈΠ½Π° для Scala

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

  • ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ IDEA ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ Create new project
  • Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Scala ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Sbt project
  • Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ поля

Π€Π°ΠΉΠ»Ρ‹ ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

  • .idea тСхничСская ΠΏΠ°ΠΏΠΊΠ° Intellij IDEA
  • project содСрТит Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ для build.sbt ΠΈ ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹ для SBT
  • src содСрТит Ρ„Π°ΠΉΠ»Ρ‹ с исходным ΠΊΠΎΠ΄ΠΎΠΌ
  • build.sbt содСрТит ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ для сборки ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°(Π½Π°Π·Π²Π°Π½ΠΈΠ΅, вСрсии, зависимости)

Hello, world!

Π’Π΅ΠΏΠ΅Ρ€ΡŒ создадим ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π²Ρ‹Π²ΠΎΠ΄ΡΡ‰ΡƒΡŽ надпись β€œHello, world!” Π½Π° экран.

(ΠΏΡ€ΠΈ нСобходимости Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Setup Scala SDK ΠΈ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ ΡΠ°ΠΌΡƒΡŽ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ)

Для этого Π² ΠΏΠ°ΠΏΠΊΠ΅ src/main/scala создадим Ρ„Π°ΠΉΠ» HelloWorld.scala со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ тСкстом:

Hello, world!!

Hello, world!!!

Для компиляции ΠΈ выполнСния написаного ΠΊΠΎΠ΄Π° Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ sbt shell(находится Π² Π»Π΅Π²ΠΎΠΌ Π½ΠΈΠΆΠ½Π΅ΠΌ ΡƒΠ³Π»Ρƒ) Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ run.

Бписок Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹

  • Β«Scala для Π½Π΅Ρ‚Π΅Ρ€ΠΏΠ΅Π»ΠΈΠ²Ρ‹Ρ…Β», КСй Π₯орстман
  • Β«Programming in ScalaΒ», Martin Odersky
  • Β«Scala by examplesΒ», Martin Odersky
  • БпСциализация Β«Functional programming in ScalaΒ» Π½Π° Coursera