Кратко
scala/scala — дом Scala 2: здесь развивается компилятор, стандартная библиотека и спецификация языка, а Scala 3 живет в отдельном репозитории.
Что это такое
Scala 2 — язык для JVM, который соединяет объектно-ориентированное и функциональное программирование. Репозиторий scala/scala относится именно к линии Scala 2.
Что внутри
Внутри находятся компилятор, стандартная библиотека, спецификация языка, тесты и инфраструктура сборки. Для Scala 3 используется отдельный репозиторий scala/scala3.
Как используют
Scala 2 продолжает жить в больших кодовых базах, особенно вокруг Akka-экосистемы, Spark, серверных сервисов и библиотек, где важны типы, коллекции и совместимость с JVM.
Пример
Типизированная функция
Синтаксис Scala показан как обычный текст: пример демонстрирует лаконичную функцию и работу с коллекцией.
def activeNames(users: List[User]): List[String] =
users.filter(_.active).map(_.name)
Сильные стороны
Сильная сторона Scala 2 — выразительность. Язык позволяет строить богатые абстракции, пользоваться JVM-библиотеками и писать как объектный, так и функциональный код.
Ограничения
Ограничение — сложность. Богатство языка требует дисциплины: слишком умные типы, implicits и DSL могут сделать код трудным для команды.
Контекст проекта
Scala 2 ведется в репозитории scala/scala; публичная история проекта начинается 2011-12-01. Основной язык в метаданных — Scala, лицензия — Apache-2.0. У проекта есть отдельный сайт: https://www.scala-lang.org/.
Этот контекст помогает читать страницу как разбор конкретного репозитория: у проекта есть владелец, техническая база, лицензия, история изменений и реальные ограничения выбранной экосистемы.
Scala 2 стоит оценивать через конкретный сценарий: кто будет поддерживать инструмент, где он встраивается в существующий стек, какие обновления придется отслеживать и что произойдет при ошибке. Такой взгляд лучше простой установки ради популярности, потому что открытый проект приносит пользу только тогда, когда его место в системе понятно команде.
Перед внедрением полезно отдельно проверить документацию, частоту релизов, модель лицензирования, требования к окружению и то, насколько легко проект будет удалить или заменить, если выбранный путь перестанет подходить продукту.