Scala Digest. Issue 20

Scala Times, Petr Zapletal's blog And Scala Nishtyaki channelwe add additional news and our own comments. We get our motivation from the desire to develop and share the knowledge we have gained.

Any feedback is welcome! (づ ◕‿◕ )づ Now you can share your own materials!

Releases

We have collected the latest updates of popular and useful libraries for a couple of months:

Tinkoff Scala meetup & open-source

A section for meetups and releases of libraries and frameworks born in the depths of the T-Bank Scala community:

  • T-Scala — the final episode of the second season of the video podcast has been released, where developers and project managers explain how our Scala products are built. We encourage everyone to watch! And under the episode about profession holders, you can even leave grateful comments: after all, it is thanks to the heroes of this series that we are here. They had the idea to launch the Russian-language Scala Digest in this format.

Articles

In this section we share fresh articles, repositories and research that we found interesting. A separate block contains resources where authors use Scala 3. Enjoy:

  • New Prioritization of Givens in Scala 3.7 — this world is simple: those who love implicits and implicit functions suffer for their love. Scala 3.7 announced changes for given in the context of searching for the closest suitable value when there are several values. We strongly recommend that you read it and try to shake up your code already in 3.5 with special flags.

  • Direct-style Bootzooka: 2024 update — this project, the “Swiss knife” of the programming world, received an update in 2024 in the form of a significant refactoring of the backend. We moved away from the effects paradigm towards a direct style, connected our favorite Ox library with its virtual threads from the 21st Java. On the one hand, Bootzooka remains a tool that is convenient to use for starting your pet project, and on the other hand, it is now also an interesting demonstration example of how to cross a grass snake with a viper. In any case, there are only more reasons to take a closer look at the project 🙂

  • Fractal generation by chaos method, UI on ScalaFX — if while reading this article your hands didn't itch to at least repeat the described steps or even try to make something similar, then you are clearly a person not burdened with the sin of curiosity. Using ScalaFX, the author creates a simple application before your eyes, describing in great detail each step starting with connecting libraries, plugins and enabling flags in sbt.

    Nastya

    According to eyewitnesses, while reading the article I looked like this:
    (ノ◕ヮ◕)ノ*:・゚✧

  • Pseudorandom Acts of Kindness — do you like generating random test data? If you've forgotten about Jon Pretty's return to the Scala world and his new huge Soundness ecosystem of libraries with amazingly cool icons, here's a sign and cool libraryallowing you to flexibly configure variations of your randomizer.

  • Crafting types with Scala 3 macros – Part 2: A Whitebox Macro — the second part of the series on metaprogramming. Attention, this is not a drill: the material is voluminous and is intended for “confident users” of Scala. We suggest adding it to your bookmarks and every time you want to do black magic — metaprogramming — open the series of articles and bite off a piece.

  • The Tri-Z Architecture

    Nastya

    After reading this material, I realized how deep the rabbit hole is, how vast the world of Z-effects is, and how little of it I use in my daily work. ZPure, ZSTM and their use for building server architecture – dive with me.

  • sudori part 4 — we continue to follow Eugene Yokota as he develops a solution for sbt 2.x with remote cache and Bazel.

Hidden text

The editorial staff was engaged in this. A column for everyone and for no one

In the rich world of engineering, it is not so much the skill of a specific programming language that is important, but the ability to write code correctly from an architectural point of view, so we want to shed light on the wonderful book A Philosophy of Software Design, John K. Ousterhout.

It teaches sound principles of writing simple, flexible and easily maintainable code, instilling a vision of good design. The book is written in the simplest language, there are many analyses of bad and good decisions, and the pages are not overloaded with cumbersome code snippets. We really liked it, and we think that it is simply a must-read for every developer!

Videos and reports

We have collected links to both well-known and popular, as well as no-name channels and videos about Scala:

Tooling

A piece of the digest, where we talk about the emergence of new and improvements to existing development tools:

  • JetBrains AI Assistant 2024.2 — now AI will help you resolve your git conflict when updating a branch, create a new folder in the terminal, pick up your child from kindergarten… oh, sorry, this feature is planned for the next update.

Highlights

This block contains resources that are not always fresh, but that caught our eye under the flag of “crazy hands”. The authors create something interesting, unusual, but not necessarily useful:

  • Decisions4s — an interesting tool for describing the logic of decision-making and their subsequent visualization. It is accompanied by documentationand a small one explanatory article. It looks intriguing, my hands are itching to try it in a pet project (つ✧ω✧)つ

  • Tour of Scala — a simple and convenient resource for learning Scala from scratch. There are simple, obvious explanations of the theory and easy, understandable exercises.

    Nastya

    If I were teaching a Scala class to a group of school children, I would use this resource for my classes and homework.

  • leases4s — if you didn't know that Kubernetes has Lease and that it can be managed to a certain extent via HTTP commands, then you should know. The library provides tools for handling Lease, and in addition we can recommend article.

  • snapshot4s

    Nastya

    I don't know how far along the timeline we are from the rise of the machines, but this tool is definitely unnerving: according to the examples and documentation, it will, when commanded in the terminal, add to or update existing tests.

  • instant scala — if you have already played with scala-cli and it has firmly entered your daily routine instead of bash, then perhaps this tool will please you. The same scala-cli, but now with instant execution — provided that there are already existing previous runs of the script instances.

Community movement

A section of curious and interesting events in the world of Scala-society. We would like to see it voluminous and lively. If we missed something or you have suggestions – we are waiting for you in the comments:

  • What happened to Adam Fraser? — Adam Fraser, one of our favorite authors and a very important person in the Scala community, disappeared from the public radar, publishing a post about leaving Ziverge. We are keeping our fingers crossed that he will soon appear and will once again delight us and the entire Scala community with cool projects. It would be a shame to lose such a cool leader of opinions of our community.

See you in a month! ♡\( ̄▽ ̄)/♡

The digest was worked on by @Melkaya_150cm, @Ivoya, @tcarina, @EvieLynn. We are looking forward to your ideas, suggestions, feedback in the comments! <( ̄︶ ̄)>

Previous releases:

Hidden text

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *