Scala Digest. Выпуск 21

dd3e0e4d457fdbf02467d28ff07c3ca6.png

Привет, Хабр! Мы — @Ivoya, @Melkaya_150cm, @tcarina и @EvieLynn — бэкенд-разработчики Т-Банка, пишем код на Scala и горим желанием его популяризировать. Мы собираем и агрегируем новости из разных источников, включая Scala Times, блог Petr Zapletal и канал Scala Nishtyaki, добавляем дополнительные новости и собственные комментарии. Мотивацию мы черпаем из желания развиваться и делиться полученными знаниями. Приветствуем любую обратную связь! (づ ◕‿◕)づ 

Теперь вы можете поделиться собственными материалами!

Релизы

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

Статьи

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

  • Поиск всех последовательностей чисел от 1 до n, где сумма соседних чисел является квадратом — возвращаемся к истокам, к нашим нежно любимым алгоритмам. Приятно на пять минут занырнуть в глубокие воды собственной памяти и ковырнуть задачку в вакууме.

  • Жизнь, смерть и р̶о̶б̶о̶т̶ы̶ управление ресурсами в Scala — можно пользоваться ZIO.Scope и бед не знать, а можно заморочиться и погрузиться в jvm-мир управления памятью и закрытием-высвобождением ресурсов.

  • The case for case objects in Scala — если вы хотите объяснить джуну всю свою невыразимую любовь к case class, киньте в него этой статьей.

  • Streaming Hash Computations — если вам когда-либо понадобится захешировать не просто ключ, а прямо поток байтов, теперь вы знаете, куда подсмотреть для выбора оптимального решения своей задачи.

  • sudori part 5 — между походом на пляж и занятиями скейтбордингом Юджин Йокота умудряется поработать для нас над удаленным кэшем для будущего SBT 2.0. В этот раз — над корректным кэшированием инкрементальных тестов.

  • RFC-4: persistent worker —, а здесь обсуждает создание persistent worker-а.

  • Spark Essentials: руководство по настройке и запуску проектов Spark с помощью Scala и SBT

    e1f15795d8acc7ec78e1f60cc04108a3.pngНастя

    Про Spark без комментариев

  • com.lihaoyi issue bounties — Лихаои набирает обороты в своей баунти-системе и в сентябре подготовил суммарно 10 000 $ и список заданий, которые призваны расширить использование Mill на Java и других языках. В этот раз задания оказались настолько проще и «жирнее», что к моменту выпуска дайджеста зеленых галочек на них уже не счесть. Хотя некоторые задания с предыдущих баунти все еще открыты и актуальны.

  • Launch Scala, faster than Native — начали забывать про великолепный ансамбль библиотек Soundness от вернувшегося Jon Pretty? Не переживайте, мы напомним. В этот раз в центре внимания инструмент Ethereal, который станет CLI к вашему сервису. 

    e1f15795d8acc7ec78e1f60cc04108a3.pngНастя

    Ой, кажется, я вижу на горизонте заблестевшие глаза багхантеров

  • SBT Task to Build Frontend Components — маленькое напоминание о том, какая на самом деле вундервафля SBT: в нем можно натурально создать исполняемую команду по установке фронтового инструмента (npm).

  • Writing an Android app with Scala.js — с каждой новой прочитанной историей о создании работающего приложения на Andriod через Scala.js с Tyrian ручонки все больше тянутся попробовать написать что-то этакое свое. Эх, было бы еще 36 часов в сутках, чтобы все успеть…

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

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

  • Может ли Best effort компиляция потеснить Idea — у наших любимых флэтмапперсов после двухмесячного перерыва вышел новый выпуск. Видимо, ребята зарядились солнышком и энергией, ибо эпизод вышел живейшим и продолжительным. Вместо джингла в этот раз — ностальгический разговор о том, кто как пытался запускать игры на Linux в достимдековские времена. А сразу после перемыли косточки и накидали камней в огород: uPickle с его особенной сериализацией Option[Option], его автору, инструменту scala toolkit, организации ссылок в документации на главной Scala. Досталось даже Python: «Не надо ожидать, что Питон — это нормальный язык», «Питон — это хороший Баш». В общем, если хотите узнать, почему совсем скоро станет без разницы, где работать — в IntelliJ Idea или Metals, в какой версии Scala появились имплиситы, какие правила работы диктует программистам-подрядчикам Майкрософт, и многое другое — переходите и слушайте подкаст. Теперь выходит даже на Ютубе!

  • Pure Functions — идем в ногу со временем и обозреваем YouTube Shorts.

  • [ICFP'24] Green — ICFP Papers and Events — восьмичасовая запись конференции в Милане, в комментариях рекомендовали к прочтению Degrees of Separation: A Flexible Type System for Safe Concurrencу.

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

Tooling

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

  • Squery — в комментариях к прошлому выпуску уже обсуждали SQL в Scala. Как говорится в заголовке, No DSLs, no fuss, just plain SQL. Ссылка на GitHub.

  • Scapegoat-Scalafix — Scapegoat-линтер для Scala 2 теперь поддерживается и для третьей версии. Подробнее о его возможностях можно почитать в Readme.

Highlights

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

  • os-lib — если вы еще не встречались с этой библиотечкой, то вот вам интересное решение для работы с операционной системой прямо из Scala-кода.

  • lohika — proof generator, есть собственный UI и написан на Scala! Выглядит весьма интересно и необычно. Дополнительно можно почитать статью в двух частях про логическое программирование: ч. 1 и ч. 2.

  • zzspec — ZIO-обвязка над testcontainer-ами для удобного написания интеграционных тестов, если ваша религия — это ZIO. На первый взгляд, это аналог модуля Distage для интеграционников с контейнерами.

В прошлом месяце в EPFL давали домашку по написанию клиента к базе данных. Собрали часть из них, можно проверять и оценивать:

А сюда мы спрятали еще одну интересную статью:

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

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

  • Trusting Open-Source — Алекс Недельсу поднимает вопрос о важности существования истинного опенсорса, и мы солидарны с ним в этом моменте. А еще он по-стариковски ворчит о том, как много развелось псевдоопенсорсных лицензий, которые затаскают вас по судам, ежели вдруг переменится ветер их доброй воли.

  • Just one more type of type bro, I swear… — ожидайте сиквел «Еще одна простая библиотека json-сериализации».

  • GOTO Considered Harmful — (͡° ͜ʖ ͡°)

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

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

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

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

© Habrahabr.ru