Workspace Digital Awards 2025 — престижнейшая международная премия в сфере диджитал. Принять участие!

Scala

Ищите подрядчика?
Устройте конкурс между агентствами и узнайте реальные цены и сроки выполнения вашего проекта. Создание тендера занимает 5 минут.
Об инструменте

Что такое Scala

Scala – мультипарадигмальный язык программирования с сильной статической типизацией. Scala уникален своей архитектурой, которая объединяет объектно-ориентированный и функциональный подход к программированию. Архитектура языка рассчитана на применение компонентно-ориентированного метода программирования. Программы на Scala могут быть модулями более сложной программы, а код на Scala удобно переиспользовать при масштабировании.

Scala тесно связан с языком Java. Эталонный дистрибутив Scala поддерживает компиляцию в байт-код виртуальной машины Java – JVM. Scala поддерживает внедрение кода на Java и дополнительных Java-библиотек. При этом, Scala не является родственным языком или надстройкой Java: дополнительно на синтаксис Scala повлияли такие языки, как C#, Sather, Smalltalk, OCaml, Haskell и Erlang. Синтаксис Scala выразительнее, чем у Java – аналогичный код на Scala будет короче. Также Scala поддерживает функции, свойственные для функциональных языков программирования, которых нет в Java.

Существуют дополнительные технологии, которые позволяют исполнять код Scala не только на JVM. Scala может транспилироваться в JavaScript с помощью Scala.js. Также язык поддерживает компиляцию в машинный код с помощью Scala Native – компилятора, который работает на технологии LLVM. Ранее Scala поддерживал компиляцию для .NET – альтернативы виртуальной машины Java, но поддержка компилятора для .NET прекратилась в 2012 году.

Дополнительные пакеты-расширения для Scala хранятся в официальном репозитории – Scaladex. На декабрь 2022 года, для Scala предусмотрено более 8000 дополнительных пакетов, но они относятся к разным версиям языка, которые могут быть несовместимы друг с другом.

Где применяют Scala

Широкие возможности компиляции делают Scala языком общего применения, рассчитанного на разработку программ для большого количества платформ. Например, байт-код Java применяется даже в программировании бытовой техники и автомобилей. Благодаря компиляции в машинный код с помощью Scala Native, код на Scala будет работать на всех современных процессорах десктопных устройств.

С поддержкой компиляции в JavaScript Scala можно использовать во фронтенд-разработке. Библиотека scalajs-react облегчает работы с React – популярным фронтенд-фреймворком. Популярные фреймворки для бэкенд-разработки на Scala: Lift и Play. На эти фреймворки во многом повлияли Ruby on Rails и Django.

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

  • поддержка программ большим количеством платформ;
  • емкий код за счет выразительного синтаксиса;
  • уникальное совмещение методов функционального и объектно-ориентированного программирования;
  • большое количество библиотек.

Недостатки разработки на Scala

  • малая популярность языка в русскоязычном сегменте;
  • более высокий порог входа за счет сложности языка;
  • для эффективной работы на Scala нужно знать Java и JVM;
  • медленная компиляция программ на Scala;
  • несовместимость разных версий компилятора.

Примеры готовых работ на Scala

  • Социальная сеть Twitter – twitter.com;
  • Медиакомпания The Guardian – theguardian.com;
  • Сервис онлайн-курсов Coursera – coursera.org;
  • Медиакомпания The New York Times – nytimes.com;
  • Музыкальный сервис SoundCloud – soundcloud.com.
Подробнее Свернуть

С этим инструментом работают 3 агентства

СЛЕДУЮЩАЯ
С