- BrainTools - https://www.braintools.ru -

Мы — Настя [1], Эвелина [2] и Миша [3] — бэкенд-разработчики Т-Банка, пишем код на Scala и горим желанием его популяризировать. Мы собираем и агрегируем новости из разных источников, включая Scala Times [4], блог Petr Zapletal [5] и канал Scala Nishtyaki [6], добавляем дополнительные новости и собственные комментарии. Мотивацию [7] мы черпаем из желания развиваться и делиться полученными знаниями. Приветствуем любую обратную связь! (づ ◕‿◕ )づ
Собрали последние обновления популярных и полезных библиотек за пару месяцев:
sbt 1.11.1, 1.11.2 [9];
scala-cli 1.8.1-1.8.3 [11];
metals 1.6.0 osmium [12];
zio 2.1.19 [13];
zio-http 3.3.3 [14];
zio-kafka 3.0.0 [15];
zio-apache-arrow 0.1.10 [16];
fs2 3.13.0-M4 [17];
sttp 4.0.8-4.0.9 [18];
tapir 1.11.34-1.11.35 [19];
iron 3.0.2 [20];
fory 0.11.0-0.11.1-RC1 [21];
circe 0.14.14 [22];
smithy4s 0.18.37-0.18.38 [23];
izumi 1.2.18-1.2.19 [24];
ducktape 0.2.9 [25];
Делимся свежими статьями, репозиториями и исследованиями, которые нам показались интересными. А еще обозреваем ресурсы, где авторы используют Scala 3. Enjoy:
Fundamental Concurrency Problems and Solutions [27] — если вы уже писали на Cats Effect/ZIO, считайте это повторением [28] азов или хорошим погружением в базовые примитивы синхронизации.
Making ScalaSql boring again (with interesting new internals) [29] — новая фича в версии 3.7: именованные кортежи, упростили либу и ее использование.
Порой сделать либу скучной для использования куда лучше, чем предоставлять пользователю крышесносный API, копаясь в котором программист сам навставляет себе палок в колеса
A Beginner’s Guide to Using Scala Metals With its Model Context Protocol Server [30] — Vibe-кодинг для самых маленьких скалистов.
Eli Golin рассказывает базу про Tagless Final и Cats Effect. Глоток свежего воздуха для Scala-разработчиков посреди GPT-статей из medium-а и неаргументированных холиваров на тему сложности функционального подхода. Вы наверняка столкнетесь с таким в работе или же на обучающем курсе.
Composing Multiple Algebras in Tagless Final Style: A Practical Guide [31]
Composing Independent Instruction Sets with Free Monads in Scala 3 [32]
From OOP Interfaces to Functional Modules: A Journey to Simplicity and Composability [33]
Собрали ссылки как на уже известные и популярные, так и на локальные каналы и видео про Scala:
Spec-first программирование и Scala 3.7 [35] — пока вы едете в машине на шашлыки, кайфик будет поставить на фон, послушать главные новости и задуматься об эргономике на примере настройки Dactyl Manuform.
Slow-Auto, Inconvenient-Semi: escaping false dichotomy with sanely-automatic derivation [36] — пишите библиотеки для реальных пользователей, а не гуру дериваций. Автор Chimney проводит сравнительный анализ библиотек и их подходов и делится своим видением будущего деривации в Scala.
2 years of Rust after 10 years of Scala — the good, the bad and… not so ugly by Maciek Próchniak [37] — спикер считает, что адаптация к написанию идиоматического кода Rust может быть сложной задачей сходу для заядлого Scala-разработчика (особенно из-за отсутствия GC). Автор делает выводы о том, что Rust лучше использовать для слоя данных, а Scala или Kotlin — для слоя управления. Почему? Посмотрите и узнаете.
Durable Event-sourced Workflow Monad… Seriously! [38] — слышим последние месяцы из разных источников, в разных форматах о ребятах из Swissborg-а. То они миграцию написали, то вот вам business4s. В этот раз workflow4s — если вам не нравится формат статей, то велком на видеообзор.
Молодая камунда omg
Кусочек дайджеста, где мы рассказываем о появлении новых и улучшении уже существующих инструментов для разработки:
chimp [39] — позвольте использовать вас искусственному интеллекту [40] с помощью MCP-протокола, а для реализации есть softwaremill.
Спорим, что в течение пары следующих месяцев упадет на наши глаза имплементация протокола A2A на Scala? ( ͡°( ͡° ͜ʖ( ͡° ͜ʖ ͡°)ʖ ͡°) ͡°)
В этом блоке не всегда свежие, но зацепившие наш взгляд ресурсы под флагом «очумелые ручки». Авторы творят что-то интересное, необычное, но не обязательно полезное:
The Elements of Kyo — Interactively explore the codebase! [41] — какой же кайф позалипать на визуализацию эффектов из kyo в виде таблицы Менделеева. Обязательно перейдите по ссылке и потыкайтесь!
From Vibe Coding to MUD — Part 1 [42] — автор вайб-кодит D&D игровой сервер на Scala. Кто-то раньше в пет-проектах экспериментировал с библиотеками, а теперь выбирает AI-агентов и мучается, когда они отходят от инструкций.
Коктейль из D&D и Scala в одном заставляет меня подписаться и следить за этой историей максимально пристально
Forest Fire Simulation [43] — рубрика «Очумелые ручки»: соприкасается Rust и Scala в проекте на поиграться. Если у вас есть Linux, то вы можете смоделировать пожар в лесу при предложенной физике влияния воды и ветра.
etl4s — Pretty, whiteboard-style, config driven pipelines [44] — нравятся стримы из Akka, но не хотите тянуть все зависимости? Не беда! Ребята из instacart проверили и написали свою либу для ETL-пайплайнов.
S2D [45] — 2D-либа, объединяющая S2DL и OpenGL. Имеет CLI-шаблонизатор для быстрого старта разработки.
Не Unity единым сыты будем
sicrograd [46] — заглянуть под капот backprepogation и понять принцип работы автограда очень полезно.
Для самых маленьких… нейросетей
miniclust [47] — инструмент распределения баш-команд между тачками в экосистеме OpenMole. Scala-жемчужинка, приплывшая к нам из другой Вселенной!
abtesstr [48] — PoC-системы AB-тестирования на Scala.
Раздел курьезных и любопытных событий в мире Scala-общества. Мы хотели бы видеть его объемным и живым. Если что-то пропустили или у вас есть предложения — ждем вас в комментариях:
from-javascript-to-scala [49] — можете глянуть, как зазывают node-js-еров в Scala-мир ♡ (˘▽˘>ԅ( ˘⌣˘)
Возможно, это привлечет ту аудиторию, свежую кровь, о которой никто не думал. Вечно мы стараемся переманить питонистов и джавистов, „улучшая“ синтаксис в Scala 3
Yet Another Scala 3 Migration Story [50] — уже встречали этих работяг несколько раз, из нового: мужик был приятно удивлен, как gpt помогает ему разбирать ошибки [51] компилятора при переписывании 170k строк кода в SwissBorg.
My experience migrating a PlayFramework app to Scala 3 [52] — неполноразмерный гайд, скорее очередная заметка по миграции, но вы не поверите: тут тоже AI помогла уйти от использования TypeTag.
До встречи через месяц! ♡\( ̄▽ ̄)/♡
Над дайджестом работали @Melkaya_150cm [53], @EvieLynn [54], @haskiindahouse [55]. Ваши идеи, предложения, обратную связь с удовольствием ждем в комментариях! <( ̄︶ ̄)>
Scala Digest #13 [56]
Scala Digest #14 [57]
Scala Digest #15 [58]
Scala Digest #16 [59]
Scala Digest #17 [60]
Scala Digest #18 [61]
Scala Digest #19 [62]
Scala Digest #20 [63]
Scala Digest #21 [64]
Scala Digest #22 [65]
Scala Digest #23 [66]
Scala Digest #24 [67]
Scala Digest #25 [68]
Scala Digest #26 [69]
Scala Digest #27 [70]
Scala Digest #28 [71]
Scala Digest #29 [72]
Автор: EvieLynn
Источник [73]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/16837
URLs in this post:
[1] Настя: https://habr.com/ru/users/Melkaya_150cm/
[2] Эвелина: https://habr.com/ru/users/EvieLynn/
[3] Миша: https://habr.com/ru/users/haskiindahouse/
[4] Scala Times: https://scalatimes.com/
[5] блог Petr Zapletal: https://substack.com/@petrzapletal835534
[6] канал Scala Nishtyaki: https://t.me/scala_channel_ru
[7] Мотивацию: http://www.braintools.ru/article/9537
[8] scala 3.7.1, 3.7.2-RC1: https://github.com/scala/scala3/releases
[9] sbt 1.11.1, 1.11.2: https://github.com/sbt/sbt/releases
[10] Intellig plugin Scala 2025.1.24: https://plugins.jetbrains.com/plugin/1347-scala/versions/stable/748379
[11] scala-cli 1.8.1-1.8.3: https://github.com/VirtusLab/scala-cli/releases
[12] metals 1.6.0 osmium: https://github.com/scalameta/metals/releases/tag/v1.6.0
[13] zio 2.1.19: https://github.com/zio/zio/releases/tag/v2.1.19
[14] zio-http 3.3.3: https://github.com/zio/zio-http/releases/tag/v3.3.3
[15] zio-kafka 3.0.0: https://github.com/zio/zio-kafka/releases/tag/v3.0.0
[16] zio-apache-arrow 0.1.10: https://github.com/grouzen/zio-apache-arrow/releases/tag/v0.1.10
[17] fs2 3.13.0-M4: https://github.com/typelevel/fs2/releases/tag/v3.13.0-M4
[18] sttp 4.0.8-4.0.9: https://github.com/softwaremill/sttp/releases
[19] tapir 1.11.34-1.11.35: https://github.com/softwaremill/tapir/releases
[20] iron 3.0.2: https://github.com/Iltotore/iron/releases/tag/v3.0.2
[21] fory 0.11.0-0.11.1-RC1: https://github.com/apache/fory/releases
[22] circe 0.14.14: https://github.com/circe/circe/releases/tag/v0.14.14
[23] smithy4s 0.18.37-0.18.38: https://github.com/disneystreaming/smithy4s/releases
[24] izumi 1.2.18-1.2.19: https://github.com/7mind/izumi/releases
[25] ducktape 0.2.9: https://github.com/arainko/ducktape/releases/tag/v0.2.9
[26] tree-sitter-scala 0.24.: https://github.com/tree-sitter/tree-sitter-scala/releases/tag/v0.24.0
[27] Fundamental Concurrency Problems and Solutions: https://lukastymo.com/posts/022-concurrency-basic-synchronization/
[28] повторением: http://www.braintools.ru/article/4012
[29] Making ScalaSql boring again (with interesting new internals): https://bishabosha.github.io/articles/scalasql-simpletable.html
[30] A Beginner’s Guide to Using Scala Metals With its Model Context Protocol Server: https://softwaremill.com/a-beginners-guide-to-using-scala-metals-with-its-model-context-protocol-server/
[31] Composing Multiple Algebras in Tagless Final Style: A Practical Guide: https://www.linkedin.com/pulse/composing-multiple-algebras-tagless-final-style-practical-eli-golin-fxlhf/
[32] Composing Independent Instruction Sets with Free Monads in Scala 3: https://www.linkedin.com/pulse/composing-independent-instruction-sets-free-monads-scala-eli-golin-0lmef/
[33] From OOP Interfaces to Functional Modules: A Journey to Simplicity and Composability: https://www.linkedin.com/pulse/from-oop-interfaces-functional-modules-journey-simplicity-eli-golin-bw80f/?trackingId=nV6nnTNc5P2HHkjDspOkBg%3D%3D
[34] Untying the Interwoven Business Logic and Effectful Operations into Separate Testable Independent Aspects: https://www.linkedin.com/pulse/untying-interwoven-business-logic-effectful-operations-eli-golin-hfnkf/?trackingId=z6LlFL4TkTrPKVvkJfoY3w%3D%3D
[35] Spec-first программирование и Scala 3.7: https://flatmappers.com/episode039/
[36] Slow-Auto, Inconvenient-Semi: escaping false dichotomy with sanely-automatic derivation: https://www.youtube.com/watch?v=M54ux51H6Fo
[37] 2 years of Rust after 10 years of Scala — the good, the bad and… not so ugly by Maciek Próchniak: https://www.youtube.com/watch?v=EuQMJzOlRx8
[38] Durable Event-sourced Workflow Monad… Seriously!: https://www.youtube.com/watch?v=2-WUxH7vVsw
[39] chimp: https://github.com/softwaremill/chimp/releases
[40] интеллекту: http://www.braintools.ru/article/7605
[41] The Elements of Kyo — Interactively explore the codebase!: https://htmlpreview.github.io/?https://gist.githubusercontent.com/fwbrasil/bde7b916c2b221f106c0c14cef47adf3/raw/528fb6114dc1ad415527b80a167f0006f0b6e0fe/combined.html
[42] From Vibe Coding to MUD — Part 1: https://medium.com/optimistic-developer/from-vibe-coding-to-mud-part-1-b82421c1f263
[43] Forest Fire Simulation: https://github.com/MadeInShineA/forest-fire-simulation
[44] etl4s — Pretty, whiteboard-style, config driven pipelines: https://github.com/mattlianje/etl4s
[45] S2D: https://github.com/FinochioM/S2D
[46] sicrograd: https://github.com/MouslihAbdelhakim/sicrograd
[47] miniclust: https://github.com/openmole/miniclust
[48] abtesstr: https://github.com/business4s/abtesstr?tab=readme-ov-file#ab-testing-101
[49] from-javascript-to-scala: https://bytes.silvabyte.com/from-javascript-to-scala
[50] Yet Another Scala 3 Migration Story: https://medium.com/@w.pitula/yet-another-scala-3-migration-story-6ecd47966be0
[51] ошибки: http://www.braintools.ru/article/4192
[52] My experience migrating a PlayFramework app to Scala 3: https://tanin.nanakorn.com/my-experience-migrating-a-playframework-app-to-scala-3/
[53] @Melkaya_150cm: https://www.braintools.ru/users/melkaya_150cm
[54] @EvieLynn: https://www.braintools.ru/users/evielynn
[55] @haskiindahouse: https://www.braintools.ru/users/haskiindahouse
[56] Scala Digest #13: https://habr.com/ru/companies/tinkoff/articles/790650/
[57] Scala Digest #14: https://habr.com/ru/companies/tinkoff/articles/797411/
[58] Scala Digest #15: https://habr.com/ru/companies/tinkoff/articles/804491/
[59] Scala Digest #16: https://habr.com/ru/companies/tinkoff/articles/811047/
[60] Scala Digest #17: https://habr.com/ru/companies/tinkoff/articles/819131/
[61] Scala Digest #18: https://habr.com/ru/companies/tbank/articles/825906/
[62] Scala Digest #19: https://habr.com/ru/companies/tbank/articles/833394/
[63] Scala Digest #20: https://habr.com/ru/companies/tbank/articles/839846/
[64] Scala Digest #21: https://habr.com/ru/companies/tbank/articles/847174/
[65] Scala Digest #22: https://habr.com/ru/companies/tbank/articles/855240/
[66] Scala Digest #23: https://habr.com/ru/companies/tbank/articles/862936/
[67] Scala Digest #24: https://habr.com/ru/companies/tbank/articles/870380/
[68] Scala Digest #25: https://habr.com/ru/companies/tbank/articles/879034/
[69] Scala Digest #26: https://habr.com/ru/companies/tbank/articles/887474/
[70] Scala Digest #27: https://habr.com/ru/companies/tbank/articles/896390/
[71] Scala Digest #28: https://habr.com/ru/companies/tbank/articles/905956/
[72] Scala Digest #29: https://habr.com/ru/companies/tbank/articles/914850/
[73] Источник: https://habr.com/ru/companies/tbank/articles/923578/?utm_source=habrahabr&utm_medium=rss&utm_campaign=923578
Нажмите здесь для печати.