Functional Programming Strategies

Archives
March 11, 2026

Systems Programming in Scala Native and Zig

Hello!

It feels like winter may finally be over here in the UK; the sun is actually shining as I type this! (If you're not in the UK, you might be amused to know this past winter was so gloomy that a sunny day in Scotland made the BBC news.)

Cats Effect 3.7.0 was released a few days ago. The highlight of this release is support for Scala Native 0.5, which in turn is the first Scala Native release to support multithreading. Taken together this means small and fast servers. While this can have commercial applications, I'm most interested in building personal tools.

About a month ago I switched from Ubuntu to Arch Linux, installing Niri and Noctalia. I'm loving my new desktop and I've gone from the person who never customized anything to wanting to customize all-the-things. An easy route is to build little servers that interact with Noctalia plugins. I've already built a plugin for Voxtype, and know that side is easy enough. With Scala Native I can easily build out the servers without taking up undue resources on my machine.

My other interest in Scala Native is to continue exploring high-level systems programming, which I previously talked about in the context of OxCaml. Scala Native gives access to malloc and free, and I think there could be some interesting experiments in safe arena memory allocation. This, combined with capture-checking annotations in the Scala standard library, could lead in very interesting directions.

Keeping on the systems programming theme, Zig has been getting some hype recently. I think it's an interesting approach, though I have some reservations about the design. I wrote up what I see as some flaws with comptime, which I think is both one of Zig's best and worst features.

Zig's new approach to Io is essentially a very simple capability-passing effect system, which I discussed in the last newsletter. I've made some good progress on the dependency injection chapter, but it needs a bit more time to develop properly. So I'm going to take a break and shift to the stream processing case study. I expect this to go quickly as I've used it a lot in training, and my goal is to get it finished by the end of the month.

A number of you have purchased the early access PDF of Functional Programming Strategies. I'd love to know what you think of it so far. If you have any feedback, just reply to this email. For those of you still deliberating, the price will be going up to $54.99 when the book is complete but the early access PDF is still available for $39.99.

Time to get back to it!

Regards,
Noel

Don't miss what's next. Subscribe to Functional Programming Strategies:
Powered by Buttondown, the easiest way to start and grow your newsletter.