Links list - 2025-02-09
Hello, and welcome to a new post of Links lists! Hope you enjoy today’s selection. 🙂
Mistakes engineers make in large established codebases Link to heading
An interesting article about working in large, legacy codebases - something I have been doing for a living most of my career. All the article is very relatable for me. I especially love this quote:
So you should know how to work in the “legacy mess” because that’s what your company actually does. Good engineering or not, it’s your job.

Mistakes Engineers Make in Large Established Codebases
What I’ve learned from ten years working on projects like this
Translating Java to Kotlin at Scale Link to heading
Meta has been translating their Android codebase from Java to Kotlin using automated tooling, which they felt was necessary given their scale. It’s a very interesting article and technique, but I wonder why they have such a massive Android code base - I was expecting more React Native and just not that much code to be honest.
Translating Java to Kotlin at Scale
Meta has been on a years-long undertaking to translate our entire Android codebase from Java to Kotlin. Today, despite having one of the largest Android codebases in the world, we’re well pas…
Prototyping in Rust Link to heading
Some simple but useful advice about how to “prototype fast” in Rust. I had already been using some of these ideas on my own projects lately (things like “just use String
instead of &str
and dealing with lifetimes”), but there’s a lot here.

Prototyping in Rust | Corrode Rust Consulting
Programming is an iterative process - as much as we would like to come up with the perfect solution from the start, it rarely works that way. Good programs often start as quick prototypes. The bad ones stay prototypes, but the best ones evo…
Compiler stuff Link to heading
Type inference in C++ and Rust Link to heading
A very interesting and extremely well written article, pointing out the differences in approach between C++ and Rust type inference. It’s also a great explanation of why Rust does not have function overload.
Type Inference in Rust and C++
Well, at least it’s not Swift.
Exponential time complexity in the Swift type checker Link to heading
Another great article that I discovered while reading the previous one, and explains the various issues that the Swift type checker has due to some (questionable?) design decisions.

Exponential Time Complexity in the Swift Type Checker
One of the most annoying problems in Swift is when the compiler gives an ‘Expression was too complex to be solved in a reasonable time’ error. I look at why this error occurs, how to avoid it and talk about how this should be solved in a future compiler update.
Why Swift’s Type Checker Is So Slow Link to heading
And yet another article on the same topic.

Why Swift’s Type Checker Is So Slow
How a 10 year old design choice for Swift’s type checker still haunts us to this day
SMBC - App Link to heading
I love the SMBC web comic and I have been reading it for years. This strip was so on point - and so irritating - that I had to share it. 🤣
Saturday Morning Breakfast Cereal - App
Saturday Morning Breakfast Cereal - App