Scala – это гибридный функциональный язык программирования, разработанный Мартином Одерским. Название происходит от Scalable Language (Масштабируемый язык).
Scala объединяет в себе возможности объектно-ориентированных и функциональных языков программирования. Scala программы компилируются для работы на Java Virtual Machine (далее – JVM). Многие современные компании по разработке программного обеспечения (далее – ПО), которые используют Java начали применять Scala для увеличения производительности и надёжности своих систем.
Ниже приведены основные моменты, которые делают Scala крайне популярным и эффективным языком программирования:
ООП
Каждое значение в Scalaa является объектом. Значения и поведение объектов описываются классами и трейтами (трейты будут рассмотрены в последующих главах).
Классы могут расширяться с помощью наследования, а механизм композиции служит заменой множественного наследования.
Функциональный язык программирования
Каждая функция является значением, и каждое значение является объектом. Это означает, что каждая функция – это объект.
Scala обеспечивает простой синтаксис для определения анонимных функций и поддерживает функции высокого порядка. Это, в свою очередь, позволяет создавать вложенные функции и поддерживает “карринг” (будут рассмотрены в последующих главах).
Работа на JVM
Результатом компиляции кода, написанного на Scala является Java байт-код, который исполняется JVM. Это означает, что Scala может работать на той же платформе, что и Java и мы имеем возможность переключаться с Java на Scala и наоборот. Команды на Scala во многом походи на команды Java.
Способность исполнять Java код
Scala даёт нам возможность использовать все классы Java SDK и другие Java классы, cозданные нами или другими разработчиками.
Многопоточность
Данный язык программирования поддерживает многопоточность.
Статическая типизация
Scala не заставляет нас указывать избыточную информацию о типах. В большинстве случаев нам не нужно указывать тип.
Scala и Java – сравнение
Scala имеет ряд серьёзных отличий от Java. Ниже приведён список основных:
- Вложенные функции
- Все типы являются объектами
- Функции являются объектами
- Трейты
- Поддержка DSL (Domain specific language – Предметно ориентированный язык)
- Закрытия
На этом мы заканчиваем обзор языка программирования Scala.
В следующей статье мы создадим первую программу на Scala.