Scala Digest. Выпуск 24
Привет, Хабр! Мы — Настя и Эвелина — приветствуем свежую кровь в нашей небольшой, но уютной команде! Миша присоединился к нам месяц назад с горящими глазами и желанием раскопать и вывести на свет каждую драгоценную унцию информации и новостей из Scala-мира.
Мы рады видеть нового бойца в наших рядах и уверены, что сможем делать дайджест еще лучше. А вы можете поделиться собственными материалами — мы опубликуем их и скажем вам спасибо (づ ◕‿◕)づ
Поздравляем наших читателей с Наступающим новым годом и желаем, чтобы Scala приносила еще больше удовольствия!
Релизы
Собрали последние обновления популярных и полезных библиотек за пару месяцев:
Статьи
Делимся свежими статьями, репозиториями и исследованиями, которые нам показались интересными. А еще обозреваем ресурсы, где авторы используют Scala 3. Enjoy:
Scala 3.6.2 is now available! — учитывая, что выпуск 3.6.0 был сломан, встречаем самый наполненный фичами выпуск Скалы серии 3.6! Завезли много экспериментальных SIP’ов, стабилизировали старые. Нас больше всего вдохновили фичи с named tuple и for-comprehension, начинающегося с map’а. Всем советуем прочитать, ознакомиться и попробовать что-то в ближайшем времени.
МишаБольше сахара Б-гу сахара!
Выжимаем максимум из Scalafix — первая на нашей памяти хорошая статья на русском о scalafix. О том, как работать и пользоваться им.
A Non-Obvious Variance Question You Might Encounter in a Scala Developer Interview — если вы что-то помните о вариантности, но ваши знания не отшлифованы, статья поможет разложить их по полочкам.
Debugging a Scala Compilation Issue, a journey into Variance and LUB — маленькое напоминание о том, как нам важно, создавая свою систему типов, помнить про ко- и контрвариантность. А если вы не помните — см. статью выше (>ᴗ•)
Zio-kafka, faster than java-kafka — попадаясь на байтящий заголовок, всегда внимательнее всматривайтесь в детали бенчмарков. При тщательном анализе окажется, что не везде, не всегда, не для всех условий утверждение в заголовке верно.
A succinct early exit trick for Option in Scala — долой грязные хаки от мира императивного способа мышления ✴==≡눈٩(`皿´҂)ง
ZIO: A ZIO 2 + Scala 3 + MySQL database + ZIO HTTP server example application — рыба для набора инструментов из названия.
Мы нашли нового продуктивного писателя Mark Grechanik. В своих статьях за этот месяц он рассмотрел такие сложные и неоднозначные темы, как:
All 24 new JEPs for JDK 24: Quantum-Resistant Cryptography, Garbage Collectors, and a lot of cleanups — JVM Weekly vol. 111 — в этом выпуске полно JEP`ов, и так как мы часть JVM-мира, считаем, что это важно. Особенно понравился JEP 404: Generational Shenandoah (Experimental), что позволяет делать паузы между сборками мусора короче, что критически важно для low-latency-приложений.
Блок JEP`ов с квантово-устойчивой криптографией. Мы считаем, что это важный шаг в подготовке JDK к будущим угрозам в безопасности.
JEP 478: Key Derivation Function API (Preview)
JEP 496: Quantum-Resistant Module-Lattice-Based Key Encapsulation Mechanism
JEP 497: Quantum-Resistant Module-Lattice-Based Digital Signature Algorithm
From SML«s exn to Scala’s Dynamic Shenanigans: Wrangling Symbols, Subtypes, and Fluid Exceptions with Flair! — большая статья про то, как достичь гибкости в реализации интерфейсов и какими способами можно достичь генерации новых типов в рантайме.
Purify Your Tests Episode IV: The Monoids Strike Back — от банальной задачи обработки потоков естестественным образом приходим к Моноидам, которые прекрасно вписываются в изменчивый мир реальной разработки. Но мнения авторов дайджеста разделились:
МишаПорой интуитивно приходишь к сложным вещам через простые. А еще открыл для себя этого автора, добавив себе несколько статей в закладки почитать (♡μ_μ)
ЭвелинаА я думала, все всё и так пишут через трейты и полиморфизм.
НастяНичего нового я для себя не узнала, мы в команде ровно так и пишем. Но мне импонирует игровая и интересная подача автором материала
Scala Space in 2025 — декларация намерений VirtusLab & SoftwareMill с их планами по улучшению тулов для разработки на 2025 год.
Fibonacci Function Gallery — Part 1 — возвращаемся к базе, снова трогаем Фибоначчи на пути к Котам и трамполайнам.
What Scala has to offer for Java devs — Scala — это сын маминой подруги, а Java — это джава… Список приятных мелочей из Scala, которых лишены джависты.
Scala, Bazel, Akka, and monorepos: A technical perspective of monorepo migration — о преимуществах использования Bazel в монорепах.
Integrate JobRunr into Play Framework — если вы в 25 году всё ещё используете Play Framework, вас, возможно, заинтересует такой инструмент управления и запуска фоновых задач, как JobRunr.
How I SBT — VII — заключительная часть о тонкостях пользования sbt.
Scala is Cool and works well with Java 21 — богатый азиатский taobao запустил английскую версию себя, наговнокодив на Scala, используя pekko.
НастяВидимо, на Akka не хватило риса.
А сюда мы спрятали еще несколько интересных статей
Видео и доклады
Собрали ссылки как на уже известные и популярные, так и на ноунейм-каналы и видео про Scala:
[ICFP24] Capabilities for Control — новогодний подарок от Мартина Одерски. Поднимается тема сложности, которая скрывается за гибкостью Монад, что отталкивает некоторых в их использовании. Автор покажет, как ответить на вопрос «Какого цвета ваша функция?» через Capabilities.
flatmappers033 — ребята задались вопросом:, а кому нужна новая akka из крупных игроков? Геймдев? Tesla? А может быть, лучше все переписать? А может, Pekko? (¬‿¬)
Scala Space Podcast: Modelling the Business Domain with Voytek Pituła and Raphaël Lemaitre — видео о том, как выстроить DDD в Scala, проектируя свой бизнес-домен от case class`ов до High-kinder types, какие плюсы есть в Scala3 с ее системой типов и почему вам стоит попробовать Pillars.
Мероприятия для скалистов — это всегда про комьюнити, яркие эмоции и качественные доклады. Мы посетили F[Scala] 2024, и особенно нам запомнилось:
Следите за анонсами таких мероприятий в нашем дайджесте и обязательно приходите в следующий раз \(≧▽≦)/
А сюда мы спрятали еще несколько интересных видеоматериалов
Tooling
Кусочек дайджеста, где рассказываем о появлении новых и улучшении существующих инструментов для разработки:
Zionomicon — вышла в релиз настольная книга для каждого, кто использует экосистему ZIO. Встречайте Zionomicon — совершенно бесплатно для всех желающих, с обновленными примерами до ZIO 2.1.
Getting Started With the JetBrains Bazel Plugin — не можем не отметить важный исторический момент: JetBrains выпустила полноценный плагин для Bazel, новая веха развития и поддержки инструмента.
Iron Constraint — отличный инструмент с множеством готовых шаблонов для тех, кто ценит статическую типизацию в Scala 3.
Advanced Code Analysis in IntelliJ IDEA — если вы все еще активно не пользуетесь хоткеями, вот вам знак, что пора.
Highlights
В этом блоке не всегда свежие, но зацепившие наш взгляд ресурсы под флагом «очумелые ручки». Авторы творят что-то интересное, необычное, но не обязательно полезное:
ScaLaMatrixRain — кто-то пересматривает «Гарри Поттера» под Новый год, но мы предпочитаем «Матрицу». Жаль, что ее не крутят в кинотеатрах, но благодаря этому проекту каждый из нас сможет запустить свою «матрицу» дома.
Комьюнити-движ
Раздел курьезных и любопытных событий в мире Scala-общества. Мы хотели бы видеть его объемным и живым. Если что-то пропустили или у вас есть предложения — ждем вас в комментариях:
The IntelliJ Scala Plugin in 2024 — JetBrains по результатам опроса разработчиков в 2024 году подвели итоги года по Scala. Доступна более полная инфографика по всем языкам программирования.
НастяИз зацепившего мой взгляд: в Южной Корее аж 15% разработчиков — женщины.
Типичный скалист по мнению JetBrains
Join the Open Web — рано или поздно на пути своего развития программист приходит к мысли о цифровой гигиене.
МишаПосле GPT-бума осознанное, выборочное потребление контента — это острая необходимость при развитии современного разработчика!
НастяМне нравится парадигма индивидуальных минималистических блогов от специалистов своего дела, так что призывы к подобному меня только радуют. (─‿‿─)
ЭвелинаНельзя не согласиться со всеми идеями, но мы не можем отказаться от соцсетей, т. к. они выполняют функцию агрегаторов контента, в том числе и хорошего.
december adventure 2024 — заметки, типичная жизнь скалиста: утром покатался на коньках, вечером поправил SIP. А как у вас прошел декабрь? (=^ ◡ ^=)
Scala Advent of Code 2024 — примеры решений Advent of Code 2024 на Scala.
Bounties SoftwareMill — теперь деньги за кодинг опенсорс-задач раздает не только lihaoyi, но и целый SoftwareMill.
Scala 2 maintenance plans — Scala 2.13 жил, жив и будет жить.
До встречи через месяц! ♡\( ̄▽ ̄)/♡
Над дайджестом работали @Melkaya_150cm, @EvieLynn, @haskiindahouse. Ваши идеи, предложения, обратную связь с удовольствием ждем в комментариях! <( ̄︶ ̄)>
Предыдущие выпуски:
Выпуски за 2023 год