Зачем нужен Scala?
easy

Зачем нужен Scala?

Разбираем, почему это не самый популярный язык.

Встречали в вакансиях позицию разработчика на Scala? Это редкий зверь, но платят нормально. Разберёмся, что это такое и зачем нужно.

Разработчик языка рассчитывал, что Scala станет преемником Java: он наследует многое хорошее из Java, работает по схожим принципам и добавляет что-то своё. И хотя Scala не стал таким же распространённым, всё равно стоит понять, из чего он сделан.

Плюсы Scala

Scala, как и Java, работает под JVM — виртуальной машиной Java (Java Virtual Machine). JVM — это такая прослойка между программой и железом. Благодаря этой прослойке один и тот же код можно исполнить на чём угодно, для чего есть JVM: и на компьютере, и на терминале оплаты, и на умном холодильнике. Не нужно каждый раз думать: «А какие там драйверы экрана?» или «С какой скоростью работает сетевой шлюз?» — всё это берёт на себя JVM, а мы пишем только логику и интерфейс.

Что это нам даёт.

  • Scala совместим с Java-командами, поэтому если вы знаете Java, то сможете перейти и на Scala.
  • Scala может работать с любым кодом на Java, независимо от его сложности.
  • Чистейшая, незамутнённая объектно-ориентированность: даже сама программа — это один большой объект.
  • Сильные механизмы абстракции позволяют одинаково просто программировать большие и маленькие системы и легко масштабировать их.
  • Объединены объектно-ориентированный и функциональный подходы — в теории это должно способствовать распространению языка.

Минусы Scala

Но если всё было бы так просто, про Java все давно бы забыли, но этого не произошло. Более того, сейчас не так много Scala-вакансий на рынке, чтобы говорить о популярности этого языка. На это есть несколько причин:

  • писать на Scala сложнее, чем на Java, потому что из-за влияния объектно-ориентированного подхода многое приходится делать через объекты, а это не всегда удобно;
  • читать Scala-код сложнее, чем ту же самую программу на Java;
  • медленная компиляция — критичное место для больших проектов, когда постоянно нужно тестировать новые версии;
  • Scala-программирование требует совершенно другого подхода к архитектуре и логике построения кода, но не все хотят тратить на это время, если можно взять уже готовое Java-решение.

Синтаксис

С точки зрения кода в Scala всё то же самое, что и в Java-языках, кроме некоторых ООП-особенностей, поэтому начнём с привычных деталей, а потом перейдём к отличиям.

Основы. Каждая команда заканчивается точкой с запятой, а присваивание и математические операторы такие же, как в Java и JavaScript.

Типов данных — много, как в любом типизированном языке. Как и в Ruby, каждый тип — это объект, который можно менять, добавлять в него новые методы.

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

Условные операторы и циклы. Всё привычно — for, while и do-while, но с одним отличием: в цикле for применяется упрощённая запись для организации переменной цикла. Обратите внимание на код ниже — сколько танцев с бубном ради одного цикла, который сам занимает три строки (не считая комментария):

// создаём объект, потому что это Scala
object ForLoopDemo {
  // определяем функцию main
  def main(args: Array[String]) {
    // делаем цикл от нуля до 5 включительно, переменная цикла — counter
    for (counter <- 0 to 5){
       // выводим переменную цикла на экран
       println(counter);
    }
}

Кто и для чего использует Scala

У Scala нет явно выраженной области применения, как у некоторых других языков. С другой стороны, из-за объединения ООП и функционального программирования этот язык прижился в тех командах, которым нужно совмещать в работе оба подхода.

Второе преимущество — возможность запустить код в любом JVM-окружении, поэтому Scala выбирают те, кому нравится объектный подход, но не нравится то, как это сделано в Java.

Основные популярные фреймворки — Play и Lift, и их используют в основном СМИ и новостные сайты:

  • BBC,
  • Coursera,
  • Guardian,
  • The Huffington Post,
  • LinkedIn,
  • The New York Times,
  • Foursquare.

С чего начать

Если хотите изучить основы Scala и попробовать свои силы в объектно-ориентированном программировании в мире Java, то вот с чего можно начать.

Большая статья в RSDN Magazine — «Обзор языка программирования Scala». Хороший и понятный материал, но подан в сухом академическом стиле.

«Scala в примерах» в Викиучебнике — написано попроще, но без введения для новичков.

«Руководство по Scala» в Записках задумчивого программиста — просто, понятно, но иногда автор не даёт подробных объяснений тому, что происходит в коде.

Обложка:

Даня Берковский

Корректор:

Ирина Михеева

Вёрстка:

Маша Климентьева

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Вам может быть интересно
Блогеры и колёса
Блогеры и колёса

Эту задачу могут решить только люди с абстрактным мышлением

easy
Делаем страницу «О себе» на Бутстрапе
Делаем страницу «О себе» на Бутстрапе

Если ты можешь сделать страницу о себе, ты можешь сделать всё.

medium
За что все любят Python
За что все любят Python

И стоит ли вам его учить.

easy
Как биг-дата управляет миром: на примере магазинов
Как биг-дата управляет миром: на примере магазинов

Вокруг появляется много одних и тех же магазинов — почему так происходит и как они устроены.

easy
Торренты: как они устроены
Торренты: как они устроены

Сага о тех, кто качает по кусочкам.

easy
Новые чудеса оптимизации: как делали игру «Принц Персии»
Новые чудеса оптимизации: как делали игру «Принц Персии»

Как сделать плавную анимацию, если доступно всего несколько кадров

easy
Как работает режим энергосбережения в телефонах
Как работает режим энергосбережения в телефонах

Растягиваем время работы до максимума

easy
Почему школьники не любят уроки программирования
Почему школьники не любят уроки программирования

Почему обучение основам программирования в школах такое ужасное и что с этим можно сделать.

easy
Redis: что это такое и как им пользоваться
Redis: что это такое и как им пользоваться

Самая быстрая база данных в оперативной памяти

hard
easy