
Привет, Хабр! Мы Настя, Эвелина и Михаил — бэкенд-разработчики Т-Банка, пишем код на Scala и горим желанием его популяризировать. Мы собираем и агрегируем новости из разных источников, включая Scala Times, блог Petr Zapletal и канал Scala Nishtyaki, добавляем дополнительные материалы и собственные комментарии. Мотивацию черпаем из желания развиваться и делиться полученными знаниями.
Поздравляем читателей с первым днем лета, желаем кайфовой разработки, интересных материалов и комфортных перерывов под летним солнцем!
Приветствуем любую обратную связь! (づ ◕‿◕ )づ
Статьи
Моки без боли — добротная статья от мейнтейнера scalamock, из которой видно, как боли приводят к улучшениям в инструментарии. Вы могли видеть статью Жени, а кто-то слушал доклад на конференции. Рады видеть пополнение в рядах русскоязычных авторов статей!
Homogeneous Tuples in Scala 3 — автор указывает на явные недостатки в API Tuples в Scala 3. Статья начинается с невинного вопроса: «А можно ли сделать tuple, в котором все элементы одного типа?» Через пять минут мы уже читаем про match types, рекурсию на уровне типов и tuples как замену HList’ам. Scala 3 умеет превращать любую бытовую задачу в экскурсию по внутренностям компилятора — именно за это мы ее любим.
Staged Parser Combinators in Scala: Have Your Cake and Eat It (Too). Staged parser combinators — классическая попытка Scala-сообщества усидеть на двух стульях: писать парсеры в удобном декларативном стиле и выжать из них производительность уровня hand-written-кода.
Статья показывает, как через staging и генерацию кода можно «разогнать» parser combinators, убрав накладные расходы композиции. По сути это возвращение старой идеи из мира LMS и Odersky: сначала пишем красивую функциональную абстракцию, а потом компилятор (или его staged-версия) аккуратно выжигает все лишние слои. Интересно не только само решение, но и вечный вопрос «Где проходит граница между выразительностью DSL и ценой, которую за нее платит runtime?».
Introduction to Scala 3's Capture Checking and Separation Checking — capture checking и separation checking в Scala 3 — попытка сделать в языке строгий контроль над тем, как значения «ссылаются друг на друга» и где может возникать алиасинг. По сути, компилятор начинает следить не только за типами, но и за тем, какие ресурсы и ссылки могут пересекаться или случайно разделяться. Идея похожа на облегченный borrow checker: можно писать привычный Scala-код, но компилятор постепенно учится запрещать опасные пересечения ссылок, которые могут приводить к гонкам данных или неожиданным побочным эффектам. Это шаг в сторону более «безопасного по умолчанию» языка, но без радикального отказа от GC и привычного стиля программирования.
In Scala, a value can override a function — в Scala val может переопределять def. На деле статья очень внятно объясняет один из фундаментальных принципов языка uniform access: вызывающему коду не должно быть важно, хранится значение или вычисляется.
Мы всегда очень радуемся новым материалам на русском языке от Scala-разработчиков. Вышла прекрасная серия из трех статей про модели конкурентности JVM-языков:
Сравнение моделей конкурентности JVM языков: треды, пулы и Structured Concurrency
Сравнение моделей конкурентности JVM-языков: Kotlin coroutines, ZIO runtime и Clojure
А вот серия статей, где автор ведет нас за ручку в мир эффектов. Каждое знакомство с новым концептом начинается с объяснения проблемы, которую пытались решить создатели, а затем описывается элегантное решение, лежащее в основе каждой из библиотек систем эффектов:
А сюда мы спрятали еще несколько статей
Видео и доклады
Собрали ссылки как на уже известные и популярные, так и на локальные каналы и видео о Scala.
Модель роста — ведущие разбирают статью из прошлого выпуска Scala’s Growth Model — Building Inward, Starving Outward о парадоксе Scala. Внутри сообщества язык любят почти все, Scala 3 получилась удачной, экосистема жива и технически сильна, но снаружи adoption растет куда медленнее, чем хотелось бы.
Ведущие вспоминают, как Spark когда-то массово привел разработчиков в Scala, и рассуждают, почему сегодня языку не хватает новых «точек входа» для внешнего мира. Получился интересный разговор не столько про технологии, сколько про то, как языки вообще становятся популярными. Затем плавно переходят к AI-adoption, отмечая, что декларативность помогает получению хороших результатов при использовании агентов.
The GENPres project — к сожалению, человеческий фактор может приводить к ошибкам, но такой области, как медицина, требуется особая точность. Для безопасного и эффективного процесса лечения препаратами с помощью программного обеспечения Clinical Decision Support Software (CDSS) можно снизить процент нарушений клинических протоколов, дозировок, а также своевременно информировать медперсонал о новых данных.
А сюда мы спрятали еще одно интересное видео:
Tooling
Кусочек дайджеста, где мы рассказываем о появлении новых и улучшении уже существующих инструментов для разработки:
Incremental Highlighting for Scala — устали, что IDEA съедает всю вашу CPU? Ребята из JetBrains объясняют идею новой экспериментальной фичи. Какие рассуждения натолкнули их на это и какие бенефиты получим, если включим ее, — все это есть в статье.
Scala with Claude Code — куда же мы без ИИ. Инструкция, как дать агенту доступ к LSP/BSP, сборке и структуре проекта через Metals и Bloop.

scala-skill — библиотека скилов для ИИ-агентов от VirtusLab.
Highlights
В этом блоке не всегда свежие, но зацепившие наш взгляд ресурсы под флагом «очумелые ручки». Авторы творят что-то интересное, необычное, но не обязательно полезное:
Scala-oss-bug-hunt — результат большого труда автора нашего дайджеста Миши. Практическое применение его дипломной работы — 181 issues в библиотеке Scala-экосистемы, в которых приведены минимальные примеры синтаксически корректного кода, воспроизводящие тот или иной баг.
scone-player — прикольный проект медиаплеера на Scala.js с использованием WebTorrent.
Релизы
Собрали последние обновления популярных и полезных библиотек за пару месяцев:
До встречи через месяц! ♡\( ̄▽ ̄)/♡
Над дайджестом работали @Melkaya_150cm, @EvieLynn, @haskiindahouse. Ваши идеи, предложения, обратную связь с удовольствием ждем в комментариях! <( ̄︶ ̄)>
Подписывайтесь на наш телеграм-канал, там мы анонсим все самое интересное и обсуждаем горячие новости.
