
Scala Digest. Выпуск 41
EvieLynn 1 час назад Scala Digest. Выпуск 41 Простой 5 мин 1.9K Блог компании Т-Банк Scala * Программирование * Дайджест Привет, Хабр! Мы Настя, Эвелина и Михаил — бэкенд-разработчики Т-Банка, пишем код на Scala и горим...
В сфере искусственного интеллекта произошло заметное событие. EvieLynn 1 час назад Scala Digest. Выпуск 41 Простой 5 мин 1. 9K Блог компании Т-Банк Scala * Программирование * Дайджест Привет, Хабр!
Мы Настя, Эвелина и Михаил — бэкенд-разработчики Т-Банка, пишем код на 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 и привычного стиля программирования.
Событие, по словам экспертов, усилит конкуренцию в сфере ИИ.





