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

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

easy
Как устроено бесплатное обучение в «Яндекс Практикуме»
Как устроено бесплатное обучение в «Яндекс Практикуме»

На примере «Аналитика данных» и Data Science

easy
Декораторы в Python: прокачиваем функции
Декораторы в Python: прокачиваем функции

Красиво и мощно

medium
Flipper Zero: как устроен хакерский тамагочи
Flipper Zero: как устроен хакерский тамагочи

И сколько на нём можно заработать.

easy
Лучшие языки программирования для старта в 2022 году
Лучшие языки программирования для старта в 2022 году

Можно работать удалённо

easy
Олимпиадное программирование: что, как и почему Россия впереди всего мира
Олимпиадное программирование: что, как и почему Россия впереди всего мира

Конспект подкаста «Запуск завтра»

easy
Ремонт Apple изнутри: что происходит за кулисами в мастерских
Ремонт Apple изнутри: что происходит за кулисами в мастерских

О работе Apple, сервисе, гарантии, деталях и удалённой блокировке устройств

easy
easy