Scala Digest. Issue 12

Scala Digest. Issue 12

Hello, Habre! We – Roma, Nastya and Karinaand we’ve been publishing Scala Digest on this site for almost a year!

Over time, the preparation of each issue became similar to factory production. We have a well-established process: we review materials and leave comments. But we are still burning with the idea and continue to go towards the goal, which is traditionally voiced in the cap of each issue: “We draw our motivation from the desire to develop and share the knowledge we have acquired.”

We decided to share our opinion more often, not try to have time to analyze all the material and add a little more non-standard narrative techniques and memes. Let’s experiment with the format. Stay tuned!


🎁🎄What is that under the Christmas tree? Maybe a trip to warm resorts? Or the long-awaited Lego set? Take a closer look! It’s Santa Claus who brought pekko support to your favorite http-lib! 🎁🎄


❄️🌨️⛄ We, like a blizzard, will shower you with a snowfall of the frostiest and freshest articles! ❄️🌨️⛄

  • Scala Native and Swift: building Twotm8 MacOS app – “Building a MacOS app using Swift, delegate some logic to Scala Native”. The most luxurious article on how to cross a hedgehog with a snake, and so that it crawls, hisses and runs on MacOS. There are solutions to non-trivial issues and considerations about Holy Roman Empire C ABI, Protobuf and memory models included. As an icing on the cake, the project itself is partially built through mill. PS there are a handful more on the blog very cool posts © Roma.

  • Writing a Chat With Akka — after the change of the akka license, the flow of articles using the actor approach began to decrease, but for general education and to satisfy scientific interest, this approach should be poked and prodded. In the article, a simple websocket chat is written on typed actors and tested using Postman and Simple Web Socket Client. In addition, it was found with the same author cool article about video streaming.

  • Collaborating on Docs: Best Practices and Strategies From JetBrains Writers – JetBrains on how to use the docs-as-code approach to work with documentation using the Jetbrains IDE and git. From a member of our editorial staff who introduced the same approach to adjacent teams: “We live and enjoy every task.”

  • Entry 1: fs2, gRPC, Triton Inference Server – The second article in the series. It’s really cool to see the interweaving of Machine Learning with Scala. Again about AI, but not about how to write a good prompt to another neuron, but about how to deploy your own service based on an already trained model and write a client to it. We follow the author with great interest.

  • F-bounded polymorphism in Scala – The editors read the article like this: “What? What’s going on? Wow! Well, business! Unfortunately, for ethical reasons, we cannot attach a link to the original Counter Strike player meme on YouTube.

    л(¯ロ¯”л) , (·_·) and ヽ(°〇°)ノ to the following:

case class ListInfo[T](
  infos: List[Info[T]]
) extends Info[List[T]] {…}
  • Navigating Through the Storm – In general, they tell the concept, which is not obvious for beginners, about how a dying service tries to retry neighboring applications. Some key terms are outlined to prevent this outcome. But one gets the impression that the article boils down to “do good and don’t do bad thanks.”

  • The compilation cost of implicits – Excellent article from the author typo. During the analysis of benchmarks of the compilation process for the generated code of three database libraries, an interesting anomaly was discovered. Compile speed for doobie on Scala 2 and Scala 3 is 2-3 times different. Then the reasons and ways to eliminate such discrepancies are investigated. Note to all librarians!

Are Russian-language articles difficult to calculate at the type level in Scala 3? Give me two!

  • Scala: data structure in type space – set – Imagine the situation. At the interview for the company, the interviewer utters the cherished words: “Please implement the structure of the set and the basic operations in it.” Here it is, our time to shine! It’s time to show all the power of type-level programming!

    PS Not recommended for interviews if you still want to find a job.

  • Scala 3 Metaprogramming: implementing a list with a size known at compile time — we started a new round of the development spiral and returned to… arrays with sizes known at the compilation stage. But not everything is so simple! The article explains how to control the size of the list to a reasonable limit at the type level. Just look at how well literal types and metaprogramming techniques fit in here. By the way, it is conceptually very similar to matrix-practice.

And here we have hidden interesting articles that may interest you.

Videos and reports

🔮🧙‍♂️ For many people, it is already a tradition to watch all parts of Harry Potter on New Year’s Eve. But we brought something better! 🔮🧙 ♂️

  • flatmappers 13: Report and Cosmopolitan — a solid part of the podcast was devoted to the ancient technologies that have fallen out of use in frameworks, as well as various build and launch tools.

    We want to highlight an interesting technology. Cosmopolitan Third Edition. This thing allows once compiled code written in any GCC language to run on different platforms without recompilation. Looks like something you’ll want to dig into over the weekend. At the end of the podcast, the guys announce the appearance of platforms for collecting donations for hosting and for realizing that they are not broadcasting in a vacuum. Let’s support the boys, they are trying.

And a few more interesting videos:


✨🌃 After all, if the stars light up, then does anyone need it? Here is a scattering of stars in the vast sky of github ✨🌃

  • Ottawa – “I’m a bug and I admit with all the humiliation that I can’t understand anything, why everything is so arranged. The developers themselves, it turns out, are to blame: they were given the actor model, they wanted inheritance with polymorphism and stole the object-oriented approach from heaven, knowing that they would be unhappy, so there is nothing to feel sorry for them” © F. Dostoevsky “The Brothers Karamazov” Roma.

  • Blazing Fast Native JVM Serialization: Putting Fury JIT and GraalVM Native Image AOT together – Top 3 anime crossovers for 2023.

  • Eval – Built-in language interpreter of scala code presented as a string.

  • Kojo: A Scala is based on a programming and learning environment for kids — a cool project that is interesting to stumble upon (just run car rides!). The project is positioned as a platform for children. There are several ready-made templates for simple games, tutorials and a teacher’s guide for $6. “If I were leading a Scala group for the little ones and wanted to teach my child, I would definitely look here. It’s a pity, I don’t have my children to protest” © Nastya.

    Have you launched car rides yet?

A few more resources under the banner “Amazing Hands”:


🎅🛠️ Those who have not tried any tool from this category in the past year risk receiving coal instead of gifts 🎅🛠️


🥂💃🎉 Every year I want to live brightly, with a lot of positive memories. The people and notes of this section fill the world of Scala with emotions and impressions. 🥂💃🎉

  • December Adventure — apparently, Advent of Code is already the last century, now the focus of December Adventure.

  • December Adventure A. Nedelcu — my dearly adored Alex Nedelcu decided to learn Rust as a challenge within the framework of December Adventure. Rust takes the best of us © Nastya.

    A little later, A. Nedelcu published small notes about Rust.

  • December Adventure E. Yokota – see what a typical month of a buildtools maintainer looks like.

  • hyperparameter optimization (2023.12 mixtape) – Playlist for hard optimization of hyperparameters by Eugene Yokota with an interesting title. Why wouldn’t he be.

  • student-projects from scalacenter – Scala Center periodically offers students topics for diploma or semester papers. They are understood like hotcakes: at the time of the release of the digest, one topic remained free. A great opportunity to connect the graduation work with Scala, and with its low-level part.

  • Today is one of those days that I am grateful and happy for using Scala – A post full of love and gratitude to Scala. I want to see this more often.

By the end of the year, the survey results and event reports were delivered:

See you next year! ♡\( ̄▽ ̄)/♡

Now you can share your own content!

Previous issues:

@ Melkaya_150cm, @ Ivoya, @ tcarina worked on the digest. We look forward to your ideas, suggestions, and feedback! <( ̄︶ ̄)>

Related posts