Привет, Хабр! Мы — Рома, Настя и Карина — бэкенд-разработчики Тинькофф, пишем код на Scala и горим желанием его популяризировать.

Мы собираем и агрегируем новости из разных источников, включая Scala Times, блог Petr Zapletal и канал Scala Nishtyaki, добавляем дополнительные новости и собственные комментарии. Свою мотивацию черпаем из желания развиваться и делиться полученными знаниями. Приветствуем любую обратную связь! (づ ◕‿◕ )づ

Релизы

Собрали последние обновления популярных и полезных библиотек за пару месяцев:

Tinkoff Scala meetup & open-source

Рубрика для митапов и релизов библиотек и фреймворков, рожденных в недрах scala-комьюнити Тинькофф:

А здесь могла быть ваша статья :) Присылайте новости, которые хотите увидеть в дайджесте, а мы скажем вам спасибо в следующем выпуске!

Статьи

В этом разделе свежие статьи, репозитории и исследования, которые нам показались интересными. В отдельный блок вынесли ресурсы, где авторы используют Scala 3. Enjoy:

  • Kyo released at Functional Scala! ? — встречаем нового зверя! Новая система алгебраических эффектов Kyo теперь тоже участвует в уличных гонках.

  • Writing Modular Applications Using The Kyo Library — первые пробы пера в свежеиспеченном фреймворке Kyo на примере крестиков-ноликов. Выглядит необычно и сильно напоминает кусочки кода из доклада Martin Odersky о Caprese. Интересно увидеть эксперименты с написанием асинхронного или конкурентного кода и серверных приложений.

  • Lichess & Scala 3. Lichess — один из лучших сайтов для игры в шахматы. Переехал со Scala 2 на Scala 3. Забавно, что в процессе форкнут, кастрирован и мигрирован Play Framework под эту цель.

  • Sealed Traits Vs Enums for ADTs — смотрим, кто лучше пляшет в разных сценариях: sealed trait-ы или enum-ы.

  • Building the Right Thing — о том, что хороший продукт держится как на инженерах, так и на бизнесе. Иначе говоря, делайте хорошее, а плохое не делайте.

  • Scala’s great ecosystem — здесь нет ни строчки кода, но есть рассказ, как разработчик писал свой код.

  • Extension of Erased Values in Scala 3 — рассказ о семестровой работе над erased values в компилятор dotty. О новом keyword-е и identifier-е, позволяющем подсказывать компилятору, что какие-то параметры и выражения нужно удалить в compile-time. Приходящее на ум применение — удаление implicit evidence, что как раз пересекается с работой над проектом Caprese. Статья подробная, освещаются сложности, связанные с тем, что функции и методы в Scala не равны. Еще бы добавить чуть больше сниппетов кода из сделанных pull request-ов. Из забавного: стилистическое оформление блога, которое зеленеет к концу статьи. По-лавкрафтиански погружаемся в пучины неописуемого ужаса современных компиляторов.

  • Practical Type-Level Programming in Scala 3 — огромная статья от Daniel Beskin о решении задачи генерации json-энкодера для вложенных структур так, чтобы полученный JSON был плоским. Магия на уровне типов, фичи Scala 3. Все как мы любим.

  • Technology trends to watch in 2024 — Нострадамус, Ванга, Пифия, Softwaremill?.. Лучшие пророки продолжают ежегодную аналитику традицию технологических предсказаний в новом году.

  • Как я попробовал написать авиасимулятор — русскоязычная статья про разработку авиасимулятора под Android на Scala с открытым исходным кодом. Каждая часть предыдущего предложения по-своему абсурдна, что не может не вызывать интерес. Впрочем, сам пост — это рефлексия о потраченном времени и приобретенном опыте.

  • Calypso: схема данных MongoDB на Scala — изложение на Хабре осеннего доклада с M2_TECH Scala Meetup. Ребята презентуют свою библиотечку calypso.

  • The debatably Free monad — переизобретение Free-монады с нуля. Написано очень живо, приятно читать. Особенно радуют фразочки типа something monadic is going on.

  • Hide irrelevant data in your PRs — если вы уже научились пользоваться .gitignore, то пришло время освоить .gitattributes.

  • Scala 2 Macro Tutorial — действительно beginner guide в макросы. Легкая подача черной магии в виде азбуки для школьников и простые примеры. Подойдет новичкам.

  • Lambda Lambda Lambda — «Знаете, какой запах я чувствую поутру? Запах лямбд. Лямбда? Лямбда, лямбда, лямбда, лямбда. Как написать сравнение цифр? Никак, ведь нет цифр. Ты пишешь иллюзию, жалкое подобие того, что люди называют цифрой. Сначала мы создаем цифры как функции, затем строки, классы, весь этот мир — это огромная функция» © Карина

  • Python/ScalaPy ⚡️ — в scala-cli добавили возможность вызвать интерпретатор python.

    «Осталось только монитор приху…»
А сюда мы спрятали все еще интересные статьи, на подводки к которым у нас не хватило сил.

Видео и доклады

Собрали ссылки как на уже известные и популярные, так и на ноунейм-каналы и видео про Scala:

  • What Can Scala Learn from Rust? by John A. De Goes — не обращайте внимания на кликбейтный заголовок. Продолжение метадиалога между создателями языка и разработчиками экосистемы в лице John A De Goes о векторе развития языка. Подчеркнем, что доклад качественно подготовлен и не выглядит как сплошное нытье. Ставьте лайк, если нашли протеинового M. Odersky.

  • The State of IntelliJ Scala Plugin — три с половиной рудокопа пилят плагин, а пользуется весь мир. Не скупитесь на лайк ребятам, а лучше дайте развернутую обратную связь.

  • Ziverge YouTube Channel — часть записей уже подъехала, а часть еще едет с конференции Functional Scala Conference 2023.

Вышло несколько выпусков flatmappers. Из забавного — в каждом из них Вадим экспериментирует над опенингами. В одном из выпусков вы можете насладиться его игрой на губной гармошке, а в другом — услышать мелодию из музыкальной шкатулки. Нам кажется это очень милым. А еще подробное описание каждого выпуска есть у ребят на сайте:

А сюда мы спрятали все еще интересные видео и подкасты, на подводки к которым у нас не хватило сил.

Highlights

В этом блоке не всегда свежие, но зацепившие наш взгляд ресурсы под флагом «очумелые ручки». Авторы творят что-то интересное, необычное, но не обязательно полезное:

Сюда спрятали еще кое-что интересное.

Tooling

Кусочек дайджеста, где мы рассказываем о появлении новых и улучшении существующих инструментов для разработки:

Комьюнити-движ

Раздел курьезных и любопытных событий в мире scala-общества, и мы хотели бы видеть его объемным и живым. Если что-то пропустили или у вас есть предложения — ждем в комментариях:

  • Proposed new syntax to support Type Classes, by Martin Odersky — в очередной раз под пулл-реквестом Martin Odersky разразилась буря. В комментах встречаются известные среди scala-комьюнити имена. А если вам не хватает накала страстей, на reddit-е можно почитать обсуждение.

  • Survey: Why have you stopped using Scala or Are considering stopping soon? — ударивший в самое сердечко опрос о том, почему люди перестали использовать Scala. Самая часто упоминаемая причина такая: бизнес отказывается от новых проектов на Scala и перевозит на другой язык.

  • Some Memories of Niklaus Wirth — «Народ, все, кто занимается промышленной разработкой, вступайте в наш клан скалистов. Там был я, там был Леха. Хороший язык, но щас загнивает». У Martin Odersky появился блог, и Настя находит суперироничным то, что первый пост — это некролог, в котором восхищаются простотой и лаконичностью языков и компиляторов.

Рубрика «Готовим с айтишниками вместе»:

  • vegan osechi 2024 — у азиатов домашние роллы такие же страшные, как и у нас. Так что все норм.

  • New Year Resolutions — Alexandru Nedelcu учит нас, как правильно худеть.

  • Chef Thuy Pham’s “Thịt Kho Tàu” recipe — контрибьютор в dotty, о котором мы писали в рубрике «Статьи», делится рецептом Thịt Kho Tàu (что это?)

А тут еще несколько интересных ресурсов.

До встречи через месяц! ♡\( ̄▽ ̄)/♡

Над дайджестом работали @Melkaya_150cm, @Ivoya, @tcarina. Ваши идеи, предложения, обратную связь с удовольствием ждем в комментариях! <( ̄︶ ̄)>

А если вам есть чем поделиться, вы можете занести собственные материалы — мы обязательно отблагодарим вас за участие в следующем выпуске!

Предыдущие выпуски: