Привет, Хабр! Мы — Рома, Настя и Карина, и мы почти год выпускаем Scala Digest на этой площадке!

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

Мы решили чаще делиться своим мнением, не пытаться успеть разобрать весь материал и добавить чуть больше нестандартных повествовательных приемов и мемов. Будем экспериментировать с форматом. Stay tuned!

Релизы

????????А что это под елкой? Может, поездка на теплые курорты? Или долгожданный набор Lego? Присмотритесь внимательнее! Это Дед Мороз принес поддержку pekko в вашу любимую http-либу! ????????

Статьи

❄️????️⛄Мы, подобно метели, засыпаем вас снегопадом из самых морозно-свежих статей! ❄️????️⛄

  • Scala Native and Swift: building Twotm8 MacOS app — «Building a MacOS app using Swift, delegating some logic to Scala Native». Шикарнейшая статья о том, как скрестить ежа с ужом, причем так, чтобы оно при этом ползало, шипело и запускалось на MacOS. Есть решения нетривиальных вопросов и рассуждения о Священной Римской Империи C ABI, Protobuf и моделях памяти в комплекте. Как вишенка на торте, еще и сам проект частично билдится через mill. P. S. в блоге есть еще горстка очень крутых постов © Рома.

  • Writing a Chat With Akka — после смены лицензии akka поток статей с использованием акторного подхода начал сокращаться, но для общего образования и утоления научного интереса стоит такой подход потыкать-потрогать. В статье пишется простой websocket-чат на typed-акторах и тестируется с помощью Postman-a и Simple Web Socket Client. Кроме того, у этого же автора нашли крутую статью про video streaming.

  • Collaborating on Docs: Best Practices and Strategies From JetBrains Writers — JetBrains о том, как использовать подход docs-as-code для работы с документацией средствами IDE Jetbrains и git-а. От члена нашей редакции, который внедрил смежным командам такой же подход: «Живем и наслаждаемся каждой задачкой».

  • Entry 1: fs2, gRPC, Triton Inference Server — вторая статья в серии. Очень круто смотреть на переплетение Machine Learning со Scala. Снова про AI, но не о том, как написать к очередной нейронке хороший промт, а о том, как развернуть свой собственный сервис по уже обученной модели и написать к ней клиент. С большим интересом следим за автором.

  • F-bounded polymorphism in Scala — редакция читала статью так: «Что? Что творится? Ничего себе! Ну и дела!» К сожалению, по этическим соображениям не можем прикрепить ссылку на оригинал мема про игрока в Counter Strike на YouTube.

    ლ(¯ロ¯"ლ) , (・_・) и ヽ(°〇°)ノ на такое:

case class ListInfo[T](
  infos: List[Info[T]]
) extends Info[List[T]] {…}
  • Navigating Through the Storm — общими словами рассказывают неочевидную для новичков концепцию о том, как умирающий сервис добивается ретраями соседних приложений. Накидываются некоторые ключевые термины для предотвращения такого исхода. Но складывается впечатление, что статья сводится к «делойте хорошее а плохое не делойте спосибо».

  • The compilation cost of implicits — отличная статья от автора typo. Во время анализа бенчмарков процесса компиляции для сгенерированного кода трех database-библиотек была обнаружена интересная аномалия. Скорость компиляции для doobie на Scala 2 и Scala 3 отличается в 2—3 раза. Потом исследуются причины и способы устранения таких расхождений. Всем библиотеководам на заметку!

Сложные русскоязычные статьи про вычисления на уровне типов в Scala 3? Дайте две!

  • Scala: структура данных в пространстве типов — множество — представьте ситуацию. На собеседовании в компанию интервьюер произносит заветные слова: «Реализуйте, пожалуйста, структуру множества и базовые операции в ней». Вот оно, наше время блистать! Пора продемонстрировать всю мощь type-level программирования! 

    P. S. Не рекомендуется использовать на собеседованиях, если вы все же хотите найти работу.

  • Scala 3 Metaprogramming: реализация списка с известным на этапе компиляции размером — мы начали новый виток спирали развития и вернулись к… массивам с известными на этапе компиляции размерами. Но не все так просто! В статье разбирается, как на уровне типов до разумного предела контролировать размер списка. Просто посмотрите, как красиво ложатся сюда literal types и техники метапрограммирования. К слову, концептуально очень схоже c matrix-practice.

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

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

????????‍♂️ Для многих людей уже традиция пересматривать все части Гарри Поттера в предновогоднее время. Но мы принесли кое-что получше! ????????‍♂️

  • flatmappers 13: Доклад и Космополитен — солидная часть подкаста была посвящена технологиям древних, вышедших из обихода фреймворков, а также различным инструментам сборки и запуска. 

    Хотим подсветить интересную технологию — Cosmopolitan Third Edition. Эта штука позволяет один раз скомпилированный код, написанный на любом GCC-языке, запускать на разных платформах без перекомпилирования. Выглядит как что-то, в чем хочется покопаться на выходных. В завершении подкаста ребята анонсируют появление у себя площадок для сбора донатов на хостинг и для осознания того, что вещают не в пустоту. Давайте поддержим ребят, они стараются.

  • Scala Wrapped — небольшое подведение итогов года от Вадима Челышова, Василия Морковкина и Евгения Веретенникова.

И еще несколько интересных видео:

Highlights

✨???? Ведь, если звезды зажигают — значит — это кому-нибудь нужно? Вот и вам россыпь звездочек на необъятном небе github-а ✨????

  • otavia — «Я клоп и признаю со всем принижением, что ничего не могу понять, для чего все так устроено. Разработчики сами, значит, виноваты: им дана была акторная модель, они захотели наследование с полиморфизмом и похитили объектно-ориентированный подход с небеси, сами зная, что станут несчастны, значит, нечего их жалеть» © Ф. Достоевский «Братья Карамазовы» Рома.

  • Blazing Fast Native JVM Serialization: Putting Fury JIT and GraalVM Native Image AOT together — топ-3 аниме-кроссоверов за 2023 год.

  • Eval — встроенный в язык интерпретатор scala-кода, поданного в виде строки.

  • Kojo: A Scala based programming and learning environment for kids — прикольный проект, в который интересно потыкаться (просто запустите car rides!). Проект позиционируется как обучающая платформа для детей. Есть несколько подготовленных шаблонов простых игр, туториалы и методичка для преподавателей за 6 $. «Если бы я вела кружок Scala для самых маленьких и хотела обучить своего ребенка, то обязательно заглянула бы сюда. Жаль, нет своих детей, чтобы протестировать» © Настя.

    А вы уже запустили car rides?
Еще немного ресурсов под флагом «Очумелые ручки»:

Tooling

????????️ Те, кто не попробовал за прошлый год ни одного инструмента из этой рубрики, рискует получить уголь вместо подарочков ????????️

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

???????????? Каждый год хочется прожить ярко, с кучей положительных воспоминаний. Люди и заметки этой рубрики наполняют мир Scala эмоциями и впечатлениями. ????????????

  • December Adventure — видимо, Advent of Code уже прошлый век, теперь в центре внимания December Adventure.

  • December Adventure A. Nedelcu — нежно обожаемый мной Alex Nedelcu в качестве челленджа в рамках December Adventure решил учить Rust. Rust забирает лучших из нас © Настя. 

    Чуть позже A. Nedelcu опубликовал небольшие заметки о Rust.

  • December Adventure E. Yokota — смотрите, как выглядит типичный месяц мейнтенера билдтулов.

  • hyperparameter optimization (2023.12 mixtape) — плейлист для жесткой… оптимизации гиперпараметров от Eugene Yokota с интересным названием. Для чего бы он ни был.

  • student-projects from scalacenter — Scala Center периодически предлагает студентам темы для дипломных или семестровых работ. Разбираются, как горячие пирожки: на момент выпуска дайджеста свободной осталась одна тема. Отличная возможность связать выпускную работу со Scala, причем с ее низкоуровневой частью.

  • Today is one of those days that I am grateful and happy for using Scala — пост, полный любви и признательности Scala. Хочется видеть подобное чаще.

К концу года подвезли результаты опросиков и репорты с мероприятий:

До встречи в следующем году! ♡\( ̄▽ ̄)/♡

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

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

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

Комментарии (0)