В декабре Scala-комьюнити опубликовало пресс-релиз о том, что Scala 2.14 никогда не выйдет. Мартин Одерски и Ко приняли решение, что необходимо сконцентрироваться на работе над Dotty/Scala3.
Сообщество Scala программистов (в моем лице в том числе) безмерно этому радо, т.к., честно говоря, давно пора было. Scala застыло в прорывном развитии на несколько лет, что на фоне стремительного роста популярности better-java-kotlin приводило к оттоку разработчиков и даже целых компаний.
Scala3 должна стать тем самым большим скачком вперед, который вернет интерес нынешним и будущим энтузиастам ФП на JVM.
Мы получим больше всего того, что мы так любим: еще больше типобезопасности и метапрограммирования на стероидахбазе полностью нового компилятора с инкрементальным режимом. Еще более краткий синтаксис.
Статус прогресса в списке вкусностей застыл в неизменном состоянии на долгое время, что должно измениться в ближайшее время, если команда Scala3 выполнит свое обещание, данное в пресс-релизе. Пока же они нам советуют рассчитывать на...
Сроки
К концу 2020 обещают зарелизиться. И еще в процессе отчитываться о майл-стоунах.
Бинарная совместимость
С Scala 2.13.1. И общую стандартную библиотеку. Здесь нет значительных компромиссов в угоду обратной совместимости потому что на самом деле 2.13 (и несостоявшаяся 2.14) задумывались как эволюционные промежуточные шаги на пути к Scala3. Scala3, напомню, благодаря TASTy обещает вечную бинарную совместимость в будущем.
Типобезопасное метапрограммирование
Метапрограммирование в Scala3 полностью переосмыслено. Поэтому макросы от 2.х придется полностью переписать. За подробностями отправляю сюда.
Производительность
Производительность была поставлена во главу угла при разработке Scala3. Причем и при компиляции, и в рантайме. Все изменения в исходный код языка обложены тестами на регресс производительности.
Поддержка Scala 2
Продолжится. Но все улучшения будут сначала заливаться в 3-ку, а потом при возможности портироваться обратно в 2-ку.
Миграция
Предоставляется набор утилит для автоматической проверки совместимости кода к переходу на Scala3, а так же конвертации исходный файлов из 2 в 3 и обратно (!). Обещают не повторять ошибок Python'а (при переходе с 2 на 3), поломавшего всю совместимость с существовавшей кодовой базой Python2.
Поддержка IDE
Команда Скалы работает совместно с разработчиками Visual Studio Code и IntelliJ IDEA. Обе уже понимают новую Скалу и обновляются параллельно с самим языком. Что не может не радовать, потому в современном мире нельзя разрабатывать языки без оглядки на IDE — ведь именно проблемы с парсингом и смертельно долгой компиляцией Scala2 привели в свое время IntelliJ к созданию своего лунапарка с блекджеком и шлюпками под названием Kotlin.
Автор: barbalion