Scala - язык программирования, спроектированный кратким и типобезопасным для простого и быстрого создания компонентного программного обеспечения. Scala это акроним от "Scalable Language" ("Расширяемый язык"). В основе расширяемости языка лежит аккуратная и тщательная интеграция концепций объектно-ориентированного и функционального программирования. Подход Scala это разработка небольшого набора основных конструкций, которые можно гибко сочетать.
Scala — мультипарадигмальный язык программирования, спроектированный кратким и типобезопасным для простого и быстрого создания компонентного программного обеспечения. Scala это акроним от "Scalable Language" ("Расширяемый язык"). В основе расширяемости языка лежит аккуратная и тщательная интеграция концепций объектно-ориентированного и функционального программирования. Подход Scala это разработка небольшого набора основных конструкций, которые можно гибко сочетать.
Объектно-ориентированная парадигма
Scala это чистокровный объектно-ориентированный язык. В принципе, любое значение является объектом, а любая операция это вызов метода. Язык поддерживает продвинутую архитектуру компонентов благодаря классам и примесям.
Функциональная парадигма
Scala это также полноценный функциональный язык. В Scala, в том числе, есть функции первого класса, библиотека с эффективными неизменяемыми структурами данных и вообще основное предпочтение отдается неизменности данных.
Полная совместимость с Java
Scala выполняется на JVM. Java классы могут быть свободно перемешаны со Scala классами в не зависимости от того разные это проекты или один и тот же, они также могут обоюдно ссылаться друг на друга. Java библиотеки, фреймворки и инструменты полностью доступны для использования.
Основные особенности:
- Статическая типизация
- Мощная система типов с механизмами вывода типа и указания вариации
- Функциональные типы (включая анонимные) с поддержкой лексических замыканий
- Сопоставление с образцом
- Неявные параметры и преобразования, при помощи которых можно реализовать такие шаблоны как тайпкласс и прокачай-мою-библиотеку (enrich-my-library или pimp-my-library)
- Компоновка примесей
- Полная совместимость с Java
- Мощные конструкции для реализации параллельных вычислений
- Продвинутые языковые конструкции, такие как ограниченные продолжения и экспериментальная система создания макросов
Официальное ресурсы:
Бесплатные книги и руководства по языку программирования Scala:
Русскоязычные:
- Школа Scala! http://twitter.github.io/scala_school/ru/index.html
Англоязычные:
- Programming in Scala, First Edition
- Scala By Example (PDF)
- A Scala Tutorial for Java programmers
- Scala for Java refugees
- Scala School
- Scala Exercises (интерактивное руководство)
- Scala Tutorials
- Scala Tour
- Scala Geek
Поддерживаемый сообществом список Scala библиотек по категориям: awesome-scala