Бесплатно по России

С 10:00 до 21:00

С 10:00 до 21:00

Заполнить бриф

Онлайн заявка

С 10:00 до 21:00

Бесплатно по России

Заполнить бриф

Онлайн заявка

#

Язык программирования Scala

Редакция Appfox

Редакция Appfox

Время чтения: 10 минут

Scala - язык программирования, совмещающий объектно-ориентированную и функциональную парадигмы. “Внутри” Скала во многом базируется на синтаксисе и принципах Java. Он даже использует Java Virtual Machine для запуска одного кода на различных платформах.

История языка

Scala разработан в 2003 году сотрудниками политехнического университета Лозанны в Швейцарии. Главной задачей разработчиков было создание языка с максимальной масштабируемостью, то есть способностью справляться с возрастающим уровнем нагрузки при расширении компонентов. Основное внимание уделялось проработке абстрагирования и агрегирования составляющих языка. В платформе также было решено объединить две парадигмы программирования - функциональную и объектную.

Кроме мультипарадигмальности, важной особенностью Scala стала статическая типизация. Предыдущие статичные языки обычно придерживались только одной парадигмы.

Преимущества и недостатки Scala

К плюсам языка можно отнести несколько моментов.

  1. Кроссплатформенность.
    Благодаря использованию JVM код на Скала запускается на любом устройстве, где установлена эта виртуальная машина. В том числе и на “умной технике” - от чайника до холодильника. Программисту при этом не приходится думать о драйверах и других аспектах совместимости.
  2. Продвинутая масштабируемость.
    При проектировании системы на Scala ее в любой момент можно расширить или “ужать” за счет абстрактных конструкций. Это упрощает планирование разработки.
  3. Совместимость с Java.
    У Scala и Java 100% интегрируемость. Оба языка без труда считывают код друг друга и уживаются в одной программе. Это позволяет строить сложные, многоуровневые системы и дорабатывать уже существующие проекты на Java с применением функционала Scala.
  4. Параллелизм.
    В Scala при помощи акторов удобно настраивается параллельное выполнение нескольких операций для ускорения работы программы. Такая модель параллелизма отличается от той, что применяется в большинстве других языков.
  5. Полное погружение в ООП.
    Код на Scala чаще всего пишут по объектно-ориентированному принципу. Сама программа на этом языке является одним большим объектом, что уже говорит о многом.
#

Есть у Scala и свои минусы.

  1. Усложненность в сравнении с Java.
    Языки хоть и похожи, но не идентичны. На освоение Скала понадобиться время, даже при изначальном знании принципов Java. К тому же синтаксис Scala уже не настолько интуитивен и читабелен.
  2. Долгая компиляция.
    Сборка программы в исполняемый код на компиляторе Scala происходит довольно медленно. На больших проектах это может значительно замедлять разработку.
  3. Малая популярность.
    В распространенности 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 и получить бесплатную консультацию по ценам и услугам.

Автор

Редакция Appfox

Редакция Appfox