Scala (мова праграмавання)
Scala | |
---|---|
Клас мовы | мультыпарадыгменная: аб’ектна-арыентаваная, функцыянальная |
З’явілася ў | 2004 |
Аўтар(ы) | Марцін Адэрскі |
Пашырэнне файлаў | scala, sc |
Тыпізацыя даных | статычная, моцна тыпізаваная |
Зведала ўплыў | Java, Haskell, Erlang, Smalltalk, Lisp |
Ліцэнзія | Apache 2.0[1] |
Сайт | scala-lang.org (англ.) |
Scala (Ска́ла) — высокаўзроўневая мультыпарадыгменная мова праграмавання, якая адначасова падтрымлівае аб’ектна-арыентаванае і функцыянальнае праграмаванне. Назва мовы Scala складаецца са слоў scalable language («маштабуемая мова») і азначае, што мова была распрацавана, каб расці разам з патрабаваннямі карыстальнікаў.[2]
Кампілятар Scala ператварае зыходны код у байт-код Java, праграма запускаецца на віртуальнай машыне Java (JVM). Такім чынам, праграмы на Scala з’яўляюцца сумяшчальнымі з існуючымі праграмамі на Java і могуць выкарыстоўваць бібліятэкі Java. Паколькі праграмы для Android звычайна пішуцца на Java, Scala можна таксама выкарыстоўваць для распрацоўкі пад Android.
Існуе таксама кампілятар Scala.js, які ператварае зыходны код на Scala у JavaScript, што дазваляе пісаць праграмы на Scala для вэб-браўзераў, а таксама серверныя праграмы з выкарыстаннем Node.js.
Выказваюцца думкі, што ў доўгатэрміновай перспектыве Scala можа замяніць Java.[3]
Гісторыя
[правіць | правіць зыходнік]Распрацоўка Scala пачалася ў 2001 годзе ў Лазанскай федэральнай політэхнічнай школе прафесарам Марцінам Адэрскі. Адэрскі раней працаваў над джэнерыкамі ў Java і кампілятарам Java ад Sun.[4] У верасні 2003 года быў апублікаваны першы драфт спецыфікацыі мовы. Рэліз Scala на платформе JVM адбыўся ў студзені 2004 года. У сакавіку 2006 года была выпушчана версія 2.0. У маі 2021 года выйшла версія 3.0.[5]
Характарыстыкі
[правіць | правіць зыходнік]Scala падтрымлівае аб’ектна-арыентаванае праграмаванне і з’яўляецца чыстай аб’ектна-арыентаванай мовай у тым сэнсе, што кожнае значэнне, уключаючы прымітыўныя тыпы, з’яўляецца аб’ектам. Тыпы даных і паводзіны аб’ектаў апісваюцца класамі і трэйтамі (аналаг інтэрфейсаў у Java). Абстракцыі класаў пашыраюцца за кошт падкласаў і гнуткага механізму кампазіцыі на аснове міксінаў, каб пазбегнуць праблем множнага наследавання.
Падтрымліваючы ўсе аб’ектна-арыентаваныя функцыі, даступныя ў Java (і, па сутнасці, дапаўняючы іх рознымі спосабамі), Scala таксама забяспечвае вялікую колькасць магчымасцей, якія звычайна ёсць толькі ў функцыянальных мовах праграмавання. Разам гэтыя магчымасці дазваляюць пісаць праграмы на Scala ў амаль цалкам функцыянальным стылі, а таксама дазваляюць змешваць функцыянальны і аб’ектна-арыентаваны стылі. Напрыклад, Scala мае адкладзеныя вылічэнні, ананімныя функцыі, замыканні, функцыі вышэйшага парадку, карыраванне і картэжы.
Прыклад
[правіць | правіць зыходнік]Прыклад напісання праграмы Hello world у Scala 3:
@main def main() = println("Hello, World!")
Калі праграма захоўваецца ў файле HelloWorld.scala, карыстальнік кампілюе яе з дапамогай каманды:
$ scalac HelloWorld.scala
і запускае з дапамогай
$ scala HelloWorld
Гэты працэс аналагічны працэсу кампіляцыі і запуску кода Java, што робіць Scala сумяшчальнай з інструментамі зборкі Java, такімі як Apache Ant.
Больш кароткая версія праграмы «Hello World» на Scala можа быць напісана наступным чынам:
println("Hello, World!")
Выкарыстанне
[правіць | правіць зыходнік]Scala выкарыстоўваецца мноствам вядомых кампаній, напрыклад:
- У красавіку 2009 года Twitter абвясціў, што перавёў вялікую частку кода з Ruby на Scala.
- Кампанія Tesla Inc. выкарыстоўвае фрэймворк Akka разам са Scala у сервернай частцы віртуальнай электрастанцыі Tesla.
- Apache Spark — аналітычны рухавік для кластарных вылічэнняў з адкрытым зыходным кодам, напісаны на Scala.
- Apache Kafka — размеркаванае сховішча паведамленняў і платформа для іх апрацоўкі, напісана на Scala.
- Кампанія Foursquare выкарыстоўвае Scala і фрэймворк Lift у сваіх прадуктах.
- Кампанія Coursera выкарыстоўвае Scala і фрэймворк Play.
- Apple выкарыстоўвае Scala ў некаторых камандах разам з Java і фрэймворкам Play.
- SoundCloud выкарыстоўвае Scala разам з такімі тэхналогіямі, як Finagle, Scalding і Spark.
Гл. таксама
[правіць | правіць зыходнік]Крыніцы
[правіць | правіць зыходнік]- ↑ Notice file . GitHub (24 студзеня 2019). Праверана 4 снежня 2019.
- ↑ Loverdo, Christos (2010). Steps in Scala: An Introduction to Object-Functional Programming(англ.). Cambridge University Press. p. xiii. ISBN 9781139490948. Праверана 2023-07-16.
- ↑ Roundup: Scala as the long term replacement for Java (англ.). Праверана 16 ліпеня 2023.
- ↑ Odersky, Martin. A Brief History of Scala . Artima.com (9 чэрвеня 2006).
- ↑ Kmetiuk, Anatolii. Scala 3 is here! . scala-lang.org (14 мая 2021).
Літаратура
[правіць | правіць зыходнік]- Odersky, Martin; Spoon, Lex; Venners, Bill (15 December 2019). Programming in Scala: A Comprehensive Step-by-step Guide (4th ed.). Artima Inc. p. 896. ISBN 978-0-9815316-1-8.
- Horstmann, Cay (15 December 2016). Scala for the Impatient (2nd ed.). Addison-Wesley Professional. p. 384. ISBN 978-0-134-54056-6.
- Wampler, Dean; Payne, Alex (14 December 2014). Programming Scala: Scalability = Functional Programming + Objects (2nd ed.). O'Reilly Media. p. 583. ISBN 978-1-491-94985-6.
Спасылкі
[правіць | правіць зыходнік]- З’явіліся ў 2004 годзе
- Мовы праграмавання паводле алфавіта
- Мовы праграмавання
- Свабодныя кампілятары і інтэрпрэтатары
- Свабоднае кросплатформавае праграмнае забеспячэнне
- Праграмнае забеспячэнне, распрацаванае ў 2003 годзе
- Скрыптовыя мовы
- Аб’ектна-арыентаваныя мовы праграмавання
- Функцыянальныя мовы праграмавання
- Мовы праграмавання высокага ўзроўню