Scala (програмски језик)
From Wikipedia, the free encyclopedia
(изговор: Скала) је програмски језик за опште софтверске апликације. Скала има пуну подршку за функционално програмирање и веома јак систем статичких типова. Ово омогућава програмима написаним у Скали да буду веома концизни и тиме мањих димензија од осталих програмских језика опште намене . Многе одлуке при дизајну Скале биле су инспирисане критикама недостатака Јаве .[5]
Парадигма | Мулти-парадигма: функционална, објективно- оријентисана , императивна, конкурентна |
---|---|
Првобитни програмер(и) | Мартин Одерски |
Прва верзија | 20. јануар, 2004; пре 11 година |
Најновија верзија | 2.11.7 / 23. јун, 2015 пре 4 месеца[1] |
Дисциплина куцања | динамична,снажна, закључна, структурална |
Платформа | ЈВМ, ЛЛВМ, Јаваскрипт[2] |
Лиценца | 3-условна BSD лиценца[3] |
Екстензије | .scala |
Веб-сајт | |
Под утицајем | |
Common Lisp, Erlang, Haskell, ML, Prolog, Scheme, Java, Ruby[4] | |
Утицао на | |
Elixir, Pixie, |
Предвиђено је да се изворни код Скале компајлира у Јава бајт код, тако да резултирајући извршни код ради на Јава виртуелној машини. Јава библиотеке могу да се користе директно у Скала коду и обрнуто (интероперабилност језика).[6] Као и Јава, Скала је објектно-оријентисана, и користи синтаксу која подсећа на C (програмски језик). За разлику од Јаве, Скала има много карактеристика функционалних програмских језика као што су Scheme, Стандард МЛ и Хаскел, укључујући кјуринг, подразумеване типове података, непроменљивости, лење евалуације, и патерн мечинг. Такође има напредни систем типова података који подржава алгебарски тип података, коваријансу и нековаријансу, типове вишег реда (али не и типове вишег ранга), и анонимне типове. Остале карактеристике Скале не постоје у Јави, укључујући преклапање оператора, факултативне параметре, назване параметре, сирове стрингове, и непроверене изузетке.
Име Скала је кованица од "скалабилности" и "језика", што значи да је дизајнирана да расте са захтевима својих корисника.[7]