Undone Programming Newsletter 01/24

Hello dear Undone Programming Newsletter readers, and welcome to 2024!
We’ll start the year off with a new batch of articles related to the latest developments in the programming languages landscape. Have you heard of Mojo, Zig or WebAssembly? If not, we’ve got you covered. Expand your horizons and have fun!
Mojo Traits: How Do They Compare to Go Interfaces?
Mojo is a language that builds on top of Python’s syntax and tries to address most of its pain points. Since it has the typing system built-in, unlike the mypy type-checker extension, it also introduces a bunch of language features. This article summarizes Mojo’s traits and compares them to the interfaces in Go. Enjoy!
After a Day of Programming in Zig
We’ve mentioned the Zig language a few times in our newsletter. It’s a fairly young language primarily targeting system-level programming, which means it’s emerging as a contender against already-established and well-received Rust. However, Zig takes a different approach on managing memory. This article tells the story of first-hand impressions about the Zig language from a Rust programmer’s perspective.
WebAssembly in 2024: Components Are and Are Not the Big Story
WebAssembly is gaining traction, not only in browsers but also as a server-side runtime. There have been a lot of improvements already and new features enabling even wider usage, like garbage collection support, for example. This article talks about another important feature: the component model, and its likely effect on the ecosystem.
Python 3.13 Gets a JIT
If you’re coming from the .NET or Java world, you’ve likely heard of just-in-time (JIT) compilation of bytecode to machine code. Now the same feature is coming to Python, to make the code run faster. This article gives a good introduction to just-in-time compilation in general, so it’s definitely worth checking out.
We're glad you've read this far! If you're interested in this article, feel free to read last year's issues of our Undone Programming Newsletters as well.
I am a knowledge-obsessed, life-positive software developer who approaches every day with a passion for learning and a drive to inspire others. As a natural problem solver, I excel at applying creative thinking to solve complex problems and am constantly pushing the boundaries of what is possible in software development.