Scala Digest. Выпуск 24

78bd0f582ad1f37c0271a0517e1764f6.png

Привет, Хабр! Мы — Настя и Эвелина — приветствуем свежую кровь в нашей небольшой, но уютной команде! Миша присоединился к нам месяц назад с горящими глазами и желанием раскопать и вывести на свет каждую драгоценную унцию информации и новостей из Scala-мира.

Мы рады видеть нового бойца в наших рядах и уверены, что сможем делать дайджест еще лучше. А вы можете поделиться собственными материалами — мы опубликуем их и скажем вам спасибо (づ ◕‿◕)づ

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

Релизы

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

Статьи

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

  • Scala 3.6.2 is now available! — учитывая, что выпуск 3.6.0 был сломан, встречаем самый наполненный фичами выпуск Скалы серии 3.6! Завезли много экспериментальных SIP’ов, стабилизировали старые. Нас больше всего вдохновили фичи с named tuple и for-comprehension, начинающегося с map’а. Всем советуем прочитать, ознакомиться и попробовать что-то в ближайшем времени.

    10d742602de1e1e08e17721ae8cac654.jpgМиша

    Больше сахара Б-гу сахара!

  • Выжимаем максимум из 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

    09adb2bdda2c67429a2ac60249b70d80.gif
  • 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 — от банальной задачи обработки потоков естестественным образом приходим к Моноидам, которые прекрасно вписываются в изменчивый мир реальной разработки. Но мнения авторов дайджеста разделились:

    f3f2f2e37ad19d3b3f26e603a5b764ee.jpgМиша

    Порой интуитивно приходишь к сложным вещам через простые. А еще открыл для себя этого автора, добавив себе несколько статей в закладки почитать (♡μ_μ)

    6625f031ae3f47ff678d99b542febfa0.jpgЭвелина

    А я думала, все всё и так пишут через трейты и полиморфизм.

    e8279f0c3d5d0cef9ebe3c6a793e9c76.pngНастя

    Ничего нового я для себя не узнала, мы в команде ровно так и пишем. Но мне импонирует игровая и интересная подача автором материала

  • Scala Space in 2025 — декларация намерений VirtusLab & SoftwareMill с их планами по улучшению тулов для разработки на 2025 год.

  • Fibonacci Function Gallery — Part 1 — возвращаемся к базе, снова трогаем Фибоначчи на пути к Котам и трамполайнам.

  • What Scala has to offer for Java devs — Scala — это сын маминой подруги, а Java — это джава… Список приятных мелочей из Scala, которых лишены джависты. 

    dc54b47189e535f887e59cd56a7238d6.jpg
  • 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. 

    629375564f1de6903c62cf4eb6260f7e.pngНастя

    Видимо, на 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. Доступна более полная инфографика по всем языкам программирования.

    f60b5e3b112719be8626676fa98c41be.pngНастя

    Из зацепившего мой взгляд: в Южной Корее аж 15% разработчиков — женщины.

    Типичный скалист по мнению JetBrains

    Типичный скалист по мнению JetBrains

  • Join the Open Web — рано или поздно на пути своего развития программист приходит к мысли о цифровой гигиене.

    2910e8e6ca5ad77ffb6dc3a6fb2a9d1a.jpgМиша

    После GPT-бума осознанное, выборочное потребление контента — это острая необходимость при развитии современного разработчика!

    9f0a4fa17490a5797bb20f6f770ef8ce.pngНастя

    Мне нравится парадигма индивидуальных минималистических блогов от специалистов своего дела, так что призывы к подобному меня только радуют. (─‿‿─)

    d3e12655a41a0a8d2ddf699a5b61b9ca.jpgЭвелина

    Нельзя не согласиться со всеми идеями, но мы не можем отказаться от соцсетей, т. к. они выполняют функцию агрегаторов контента, в том числе и хорошего.

  • 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 жил, жив и будет жить.

    410633ce042cf26722a16f8a4473ebea.png

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

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

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

Выпуски за 2023 год

© Habrahabr.ru