Tech corner - 20. February 2024

Undone Programming Newsletter 02/24

header_image

This issue brings some very exciting news about the Gleam and Mojo languages. We give Rust a lot of space as usual, but from a slightly different angle this time, as we look at it as a foundation that is lacking some features, and even contested in its usual area of dominance – speed.

On top of all that, we’ve also included a language-agnostic article about the categorization and handling of errors. Happy reading!

Error categories and category errors

Error handling is a common problem in almost all types of computer programs. The solutions range from throwing exceptions in mainstream languages like Java and C# to utilizing algebraic data types for return values in functional languages. This article tries to categorize the types of errors and possible ways to address them.

Gleam Language, Types for the BEAM

Have you heard about Gleam? If not, maybe you’ve heard about the Erlang or Elixir languages. Well, something they all have in common is that they run on BEAM – the Erlang Virtual Machine that is famous for its concurrency capabilities. Erlang and Elixir are dynamic languages, and although Elixir is adding gradual typing, Gleam comes as a statically typed ML-based language targeting BEAM via transpilation to Erlang. This means that now you can use the full power of the compiler while enjoying a dynamic feel due to type inference and having access to the rich Erlang ecosystem. I can’t wait to try it out! Check out this blog post to learn more. 

Mojo vs. Rust: is Mojo faster than Rust?

A very hot article ahead, including remarks from well-known developer influencers!

Rust is known to be one of the fastest programming languages in terms of execution speed. 

But the newly emerging Mojo language is trying to prove that it can go even farther while keeping the programming simple, especially for the data science domain. Based on Python syntax but using the latest compilation strategies, it promises to give us both. And it’s this speed and simplicity that is making a lot of people very excited. Read how they’re achieving it in this article.

The bane of my existence: Supporting both async and sync code in Rust

Supporting async and sync versions of a library may sound simple but, in reality, it’s far from straightforward if we don’t want to duplicate code or bundle unnecessary dependencies. Read this story about the problems in Rust’s ecosystem, and how they can be addressed.

blog author
Author
Michal Kaščák

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.

Read more

Contact us

Let's talk

I hereby consent to the processing of my personal data.