Руководство по Scala. Введение.

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.