Привет, Хабр! Мы — Рома, Настя и Карина — бэкенд-разработчики Тинькофф, пишем код на Scala и горим желанием его популяризировать. Мы собираем и агрегируем новости из разных источников, включая Scala Times, блог Petr Zapletal и канал Scala Nishtyaki, добавляем дополнительные новости и собственные комментарии. Свою мотивацию мы черпаем из желания развиваться и делиться полученными знаниями. Приветствуем любую обратную связь! (づ ◕‿◕ )づ Собрали последние обновления популярных и полезных библиотек за пару месяцев: pekko v1.0.1 — первый релиз форка akka; slick v3.5.0.-M4 — пререлиз для Scala 3; endless v0.24.0 — добавили pekko-рантайм; indigo v0.15.0-RC3 — завезли базовый физический движок; sttp v3.8.16, 4.0.0-M2 — в v3.8.16 подняли cats-effect, в котором изменена семантика Async. Beware! izumi v1.1.0-M24, v1.1.0-M25 — завезли поддержку ZIO 2; Scala 3.3.1-RC1 — 3.3.1-RC4; sbt 1.9.2 и sbt 1.9.3; IntelliJ IDEA 2023.2 Is Out!; scala-cli v1.0.2; ducktape v.0.1.10; smithy4s 0.17.x; enumeratum macros-1.6.4; scalatra v3.0.0-M5; magnolia scala3-v1.3.3; tapir v1.6.1—v1.6.3; zio-json v0.6.0; zio-kafka v2.4.1; iron v2.2.0. Рубрика для митапов и релизов библиотек и фреймворков, рожденных в недрах Scala-комьюнити Тинькофф. 5 августа в Казани состоится Тинькофф ИТ-фест. В программе — доклады по направлениям QA, Java, Mobile и Scala, а также обсуждения, дискуссии и различные развлечения-активности. Например, наш ведущий разработчик Иван Лягаев расскажет, что такое Project Loom и какие проблемы он решает, а какие — нет. Чтобы принять участие, достаточно пожертвовать в указанный благотворительный фонд любую сумму свыше 1000 ₽. В этом разделе делимся свежими статьями, репозиториями и исследованиями, которые показались нам интересными. В отдельный блок вынесены ресурсы, где авторы используют Scala 3. Enjoy: What is blocking in Loom? Шикарное исследование от Adam Warski, проливающее свет на то, до какой степени Project Loom готов вести нас в мир неблокирующих операций. Здесь же небольшой обзор принципа работы Loom, а также I/O в операционных системах. SIP - Coroutines — неприличного размера SIP о внедрении Kotlin-like корутина в Scala. Стоит ознакомиться как минимум для осознания вектора развития современной Scala в контексте конкурентного программирования. Здесь же упомянуты и Project Loom, и IO-монады, и недавняя экспериментальная разработка от softwaremill, и новейшее исследование от EPFL во главе с самим Martin Odersky. Chatbot Showdown: LLMs to write Scala applications with Typelevel stack. VirtusLab снова устраивает соревнование между нейронными сетями. В этот раз определяют лучшего разработчика REST-сервисов. Как сказал один наш коллега, «раньше три часа писали код и час его дебажили. Теперь код мгновенно генерирует нейронка, зато приходится дебажить его половину рабочего дня». gRPC vs REST — сравнение REST- и gRPC-подходов к построению API. Сравниваются разные аспекты, начиная с версии используемого HTTP-протокола и заканчивая тулингом для тестирования. Data serialization tools comparison: Avro vs Protobuf.  Это могла бы быть хорошая статья, если бы автор провел более фундаментальное исследование. Не хватило разнообразия параметров прогонов и используемых стеков. An intro to Flow Fields in Scala. Chris Kipp рассказывает, как он реализовал код для генерации красивейших артов по мотивам статьи Tyler Hobbs. «Код — это палитра, а программист — художник, создающий шедевры из нулей и единиц». ChatGPT ╰( ͡° ͜ʖ ͡° )つ──☆*:*:･ﾟ’☆ 6 Common Misconceptions Around Akka-HTTP / Pekko-HTTP — развеивание мифов об akka-http, которые ходят в Scala-коммьюнити. Или как сказать «нормально делай — нормально будет» шестью разными способами. How to implement streaming microservices with ZIO 2 and Kafka — ныряем в мир экосистемы ZIO 2. Пошаговый, с подробными объяснениями туториал по тому, как написать тестовый проект с Apache Kafka и ZStream. Уберите детей от экранов: используется Bleep (см. рубрику Tooling из предыдущего выпуска). Interesting patterns to consume ZIO Streams.  Автор не только потрогал за разные места ZStream и ZSink, но и оставил наглядные картинки, как именно он это делал. No More Orphans in Practice — пробуем на практике подход из оригинальной статьи 7mind, а именно: как предотвратить dependency-hell у пользователей еще на этапе проектирования библиотеки. How to write a (completely lock-free) concurrent LRU Cache with ZIO STM — на примере небольшой структуры данных изучаем ZIO Ref. Ищем его недостатки и решаем их с помощью ZIO STM. Introduction to optics in Scala — не пристально (только Lens, без Prism) разглядываем Monocle. Comprehensive Data Validation in Scala — и снова валидируем значения, навешивая ограничения на типы. На этот раз скрещиваем Validated с NonEmptyList. Get Productive with Akka Streams — основы akka-streams с кратким введением в элементы экосистемы Akka: интеграция с акторами и alpakka-коннекторы. Go-like channels in Scala: receive, send, and default clauses — продолжение статьи про Channel из основывающейся на Loom экспериментальной библиотеки для structured concurrency ox. ZooKeeper-less Kafka — статья не о Scala, однако от этого не менее интересная! Softwaremill приоткрывают ширму того, зачем кластер Zookeeper был необходим в Kafka и как новые релизы функционируют без него. What Is An Effect In Functional Programming. Scala 3 Macros: How to Read Annotations — небольшое и приятное погружение в API макросов и аннотаций в Scala 3. Учимся читать статические аннотации в теле макросов. How to mine Scala 3 compiler metadata using TASTy files. Заголовок звучит довольно абстрактно. Сама же статья представляет собой ряд скриптов, в которых происходит получение названий артефактов, скачивание их содержимого через coursier, извлечение TAST файлов и их декомпиляция в source code Scala 3. Такие дела. Signature polymorphic methods in Scala. Никогда не слышали про signature polymorphism? А он есть! Seth Tisue рассказывает о том, что это такое, какая была имплементация в Scala 2 и как переиначили реализацию в Scala 3. Собрали ссылки как на уже известные и популярные, так и на ноунейм-каналы и видео про Scala: YouTube Ziverge. На канале вышло несколько видео, среди них заключительный доклад с ZIO World от John De Goes об эволюции runtime. Однозначно рекомендуем к ознакомлению! Кроме того, Zymposium продолжает радовать новыми выпусками, в этот раз сфокусированными именно вокруг разрастающейся экосистемы ZIO. Why I keep choosing ZIO! Как похорошел процесс обучения джунов при Scala 3 и ZIO 2. What makes library docs great. Library review: Iron — призыв писать понятные документации к своим open-source-библиотекам. Разбор правильных решений и ошибок на примере iron. Breaking framework chains with vanilla Scala. В этом блоке не всегда свежие, но зацепившие наш взгляд ресурсы под флагом «очумелые ручки». Авторы творят что-то интересное, необычное, но не обязательно полезное: A Macro Almanac. Kit Langton держит обещание и продолжает писать свой путеводитель в мир макросов Scala 3. Можно подписаться на email-рассылку с новыми главами. Healthful — небольшая библиотека, которая на отдельном HTTP-сервере запускает liveness/readiness-пробы для Kubernetes. Зависит только от core-модуля sttp. Кусочек дайджеста, где мы рассказываем о появлении новых и улучшении уже существующих инструментов для разработки: Metals v1.0.0 - Silver. Искали медь, а нашли silver. Первый мажорный релиз Metals. Если пишете на VSCode — возрадуйтесь, если не пишете — задумайтесь почему и выпейте кружку пива или чая за развитие тулинга в комьюнити Scala. How to set up a Bazel testing configuration: The comprehensive guide for Scala and Java — дружелюбный к новичкам гайд по настройке среды для тестирования с помощью Bazel. Опытные пользователи найдут для себя несколько интересных фишечек. automate refactoring with Bazel + Scalafix. Eugene Yokota — о том, как подружить bazel с semantic rules из scalafix. Никаких поверхностных обзоров — только хардкор, скрипты на bash- и bazel-макросы. Best Continuous Integration Tools for 2023 ‒ Survey Results. Как еще раз напомнить всем, что у тебя есть такой продукт, как TeamCity. scala-cli-repl: a Scala REPL based on scala-cli. Раздел курьезных и любопытных событий из мира Scala-общества, и мы хотели бы видеть его объемным и живым. Если что-то пропустили или у вас есть предложения, ждем вас в комментариях: gRPC benchmark results — бенчмарки gGRPC-библиотек из разных языков программирования. Порадуйтесь за scala-akka, начиная с 4 CPU, гордо красующейся на первом месте! Simpla - replacing the concept of killer app driven adoption. Автор, возможно, приверженец фразы про хлеб и пирожные: предлагает во имя популяризации Scala выпилить из нее все сложное и непонятное. Scala Center Roadmap for 2023 Q3 — заголовок говорит сам за себя. flatmappers #5.1, #5.2, #6. Предыдущие выпуски: Scala Digest #1 Scala Digest #2 Scala Digest #3 Scala Digest #4 Scala Digest #5 Scala Digest #6 До встречи через месяц! ♡＼(￣▽￣)／♡  Scala Backend