Оглавление
Время чтения: 10 минут
Scala - язык программирования, совмещающий объектно-ориентированную и функциональную парадигмы. “Внутри” Скала во многом базируется на синтаксисе и принципах Java. Он даже использует Java Virtual Machine для запуска одного кода на различных платформах.
История языка
Scala разработан в 2003 году сотрудниками политехнического университета Лозанны в Швейцарии. Главной задачей разработчиков было создание языка с максимальной масштабируемостью, то есть способностью справляться с возрастающим уровнем нагрузки при расширении компонентов. Основное внимание уделялось проработке абстрагирования и агрегирования составляющих языка. В платформе также было решено объединить две парадигмы программирования - функциональную и объектную.
Кроме мультипарадигмальности, важной особенностью Scala стала статическая типизация. Предыдущие статичные языки обычно придерживались только одной парадигмы.
Преимущества и недостатки Scala
К плюсам языка можно отнести несколько моментов.
- Кроссплатформенность.
Благодаря использованию JVM код на Скала запускается на любом устройстве, где установлена эта виртуальная машина. В том числе и на “умной технике” - от чайника до холодильника. Программисту при этом не приходится думать о драйверах и других аспектах совместимости. - Продвинутая масштабируемость.
При проектировании системы на Scala ее в любой момент можно расширить или “ужать” за счет абстрактных конструкций. Это упрощает планирование разработки. - Совместимость с Java.
У Scala и Java 100% интегрируемость. Оба языка без труда считывают код друг друга и уживаются в одной программе. Это позволяет строить сложные, многоуровневые системы и дорабатывать уже существующие проекты на Java с применением функционала Scala. - Параллелизм.
В Scala при помощи акторов удобно настраивается параллельное выполнение нескольких операций для ускорения работы программы. Такая модель параллелизма отличается от той, что применяется в большинстве других языков. - Полное погружение в ООП.
Код на Scala чаще всего пишут по объектно-ориентированному принципу. Сама программа на этом языке является одним большим объектом, что уже говорит о многом.
Есть у Scala и свои минусы.
- Усложненность в сравнении с Java.
Языки хоть и похожи, но не идентичны. На освоение Скала понадобиться время, даже при изначальном знании принципов Java. К тому же синтаксис Scala уже не настолько интуитивен и читабелен. - Долгая компиляция.
Сборка программы в исполняемый код на компиляторе Scala происходит довольно медленно. На больших проектах это может значительно замедлять разработку. - Малая популярность.
В распространенности Scala уступает не только своему “прародителю” Java, но и другим языкам. Многие программисты считают, что существующих возможностей привычных платформ вполне хватает для предметной разработки и переход на Scala, со значительно отличающейся архитектурой, не оправдывает себя. Но, как минимум на западе тенденция начинает меняться. Scala в свои продукты внедряют Twitter и другие крупные корпорации.
Основные отличия от Java
В целом код на Scala лаконичнее, чем на Java. При использовании функционального стиля решение задачи на Скала занимает в разы меньше строк. Синтаксис в Scala заметно упрощен - точки запятой в конце строки необязательны, как иногда и фигурные скобки.
Второй важный момент - отсутствие в Java ряда структур, добавленных в Scala. Например, case-классов и поддержки DSL.
Для Java, исключительно из-за его более длительного существования, написано больше фреймворков и в целом доступно больше инструментов разработки. Но Скала со временем также обрастает полезными дополнениями.
Хоть Джава и Скала оба используют байт-код для компиляции программы и ее перевода в машинный код, второй язык справляется с этим немного быстрее. Правда, при работе с сетевыми ресурсами разница становится уже малозначимой.
Основные сферы применения
Скала считается языком программирования общего назначения, и в теории подходит для решения любого рода задач - от создания десктопных программ до написания серверных приложений. При этом чаще всего язык применяется для разработки в веб-среде, особенно когда дело касается объемных, нагруженных проектов вроде социальных сетей, многостраничных информационных порталов и т.п. В этом помогают популярные фреймворки Scala - Lift и Play. Их на своих сайтах задействуют такие новостные гиганты, как BBC и New York Times.
Второе распространенное использование языка - разработка кроссплатформенного ПО. Программировать для большого числа устройств и операционных систем на Скала удобно за счет уже упоминавшейся Java Virtual Machine.
Примеры кода
Простой вывод надписи в консоли на Scala выглядит так.
object HelloWorld extends App {
println("Привет, Мир!")
}
Элементарную функцию по добавлению к переменной определенного числа можно написать в две строки.
def addFive(a: Int) = a + 5
addOne(1)
Результатом выполнения будет 6.
Заключение
Scala во многом представляет из себя улучшенную версию Java с расширенными возможностями для программирования в функциональном стиле. Чаще всего Скала применяется для работы с веб-проектами и для создания кроссплатформенных приложений. Выбрав Scala в качестве основного языка разработки, можно сократить время на реализацию продукта и расширить возможности его применения.
В студии AppFox можно подать заявку на программирование, создание игр или заказать разработку приложений https://appfox.ru и получить бесплатную консультацию по ценам и услугам.