English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Scala - это аббревиатура от Scalable Language, это много范式ный языков программирования
Martin Odersky из Федеральной политехнической школы Лозанны (EPFL) начал проектировать Scala в 2001 году на основе работы над Funnel.
Funnel - это языковая программа, которая сочетает в себе идеи функционального программирования и Petri-сетей.
Рабочий опыт Odersky предшествовал Generic Java и javac (Sun Java компилятор). Scala для платформы Java был выпущен в конце 2003 года/начале 2004 года. Scala для платформы .NET был выпущен в июне 2004 года. Второй выпуск языка, v2.0, был выпущен в марте 2006 года.
К сентябрю 2009 года последняя версия была версии 2.7.6. Ожидаемые характеристики Scala 2.8 включают переработанную библиотеку Scala (Scala collections library), именованные параметры методов и параметры по умолчанию, объектные пакеты (package object) и continuation.
В апреле 2009 года Twitter объявил, что они уже перевели大部分 своих backend-программ с Ruby на Scala, и намерены продолжить этот процесс. Кроме того, Wattzon公开宣布, его платформа целиком написана на основе инфраструктуры Scala.
Scala является чистым объектно-ориентированным языком, каждый значений является объектом. Тип данных объекта и поведение описываются классами и特质ами.
Расширение механизма абстракции класса имеет два пути: один путь - это наследование подкласса, другой путь - гибкая система混айн. Эти два пути могут избежать множества проблем с множественным наследованием.
Scala также является функциональным языком, его функции могут использоваться как значения. Scala предоставляет легковесную грамматику для определения анонимных функций, поддержку высших функций, разрешение вложенных многоуровневых функций и кюриации. Case class Scala и встроенное шаблонное соответствие эквиваленты алгебраическим типам, часто используемым в функциональных языках программирования.
Дальнейшее развитие, программисты могут использовать шаблонное соответствие Scala для написания кода, аналогичного регулярным выражениям, для обработки данных XML.
Scala имеет типовую систему, которая гарантирует безопасность и一致性 кода через проверку в време...
Генерические классы
Ко_variance и contra_variance
Метка
Ограничения по верхним и нижним пределам для параметров типов
Классы и абстрактные типы как члены объекта
Композитные типы
Тип явно указывается при ссылке на себя
Вид
Полиморфные методы
Дизайн Scala основан на факте, что в практике разработка приложений для определенной области часто требует расширения языка для этой области. Scala предоставляет множество уникальных языковых механизмов, которые можно легко и безболезненно добавить в виде библиотеки новые языковые структуры:
Любой метод может использоваться в качестве префиксного или постфиксного оператора.
Контурные функции могут автоматически создаваться на основе ожидаемого типа.
Scala использует Actor в качестве модели параллелизма, Actor - это сущность, подобная потоку, которая отправляет и принимает сообщения по почте. Actor может повторно использовать потоки, поэтому в программе можно использовать миллионы Actor, а потоки можно создавать только тысячи. В версиях 2.10 и выше используется Akka в качестве стандартной реализации Actor.
В апреле 2009 года Twitter объявил, что они уже迁移大部分backend с Ruby на Scala, и также планируют迁移其余部分.
Кроме того, Wattzon公开宣布,их целая платформа написана на основе инфраструктуры Scala.
UBS Group использует Scala в своих продуктах.
Coursera использует Scala в качестве серверного языка.
Ниже перечислены 3 самых популярных веб-фреймворков для Scala на текущий момент: