Rust: maybe not for fast project iteration

I have ported small utilities to Rust and enjoyed it as a GC-free ML. However, I have noticed there is a type of user that is unsatisfied with the language. They used Rust for a new, larger project that required rapid iteration. The point of this page is not to assert that every user of this type ends up unsatisfied but rather to highlight a category of users that should be extra cautious if they are considering Rust.

Contents

“Using Rust at a startup: A cautionary tale” ​(2022)

Matt Welsh. Link.

Rust has made the decision that safety is more important than developer productivity. This is the right tradeoff to make in many situations — like building code in an OS kernel, or for memory-constrained embedded systems — but I don’t think it’s the right tradeoff in all cases, especially not in startups where velocity is crucial. I am a pragmatist. I would much rather have my team sink time into debugging the occasional memory leak or type error for code written in, say, Python or Go, than have everyone on the team suffer a 4x productivity hit for using a language designed to avoid these problems entirely.

“I love building a startup in Rust. I wouldn’t pick it again.” ​(2023)

Andrew Israel. Link.

Slower iterations. When you first start with Rust, you’ll end up fighting the compiler a bit. This is natural and gets easier over time. However, at a new startup, one of the core problems is to figure out if you are building something useful.

A quick MVP can be invaluable in determining if you are on the right path or lost in the woods. All that time spent making readable, performant code might be wasted.

“Leaving Rust gamedev after 3 years” ​(2024)

LogLog Games. Link.

Making a fun & interesting games is about rapid prototyping and iteration, Rust’s values are everything but that

[…]

I’d even say that it is correct and desirable that players do not care about the developer and just look at the game for a few seconds, but at least that keeps us honest. It keeps the games be about the game itself and nothing else, because ultimately, it is the game and the experience of playing it that matters.

It also reveals the values one as a game developer should appeal to. If you’re showcasing your game and the response is anything but “can I please play this?”, the game was not interesting to the person who you showed it to. At least not in the sense that truly matters for the purposes of making commercially successful games.

People would often argue that Rust appeals to values like “maintainability” and how this leads to better games that don’t crash, but I think the problem here is completely different scales. Surely we can all agree that a game crashing when someone presses play is bad, and it is definitely bad when you corrupt a save file and the player loses progress.

But I think all of this completely misses the point of what matters to players. There are many cases where people would get their progress wiped and they’d still come back to the game and play it again, because the game was that good. I’ve done this more than once as a player.

See also