Recently an article very critical of Rust swept r/rust, r/programming, and HackerNews. This isn’t the first time someone has been critical of Rust, but in my experience, it’s one of the few times I didn’t see the typical host of responses piling on the author about “doing Rust wrong.” The post was so thorough and so poignant that it shut up even the loudest of zealots.

With that article, I felt a vibe shift. Someone finally called out Rust on its bullshit, so to speak. It’s true - “Rust gamedev ecosystem lives on hype” - and it’s about time we addressed it. There’s a lot of Rust folks whose answer would be “just get gud.” But the article rightly points out that for startups, small teams, and basically anyone who just wants to ship, Rust is not the answer.

Why does my opinion matter at all?


A year ago, I went full time as maintainer of Dioxus and founder of Dioxus Labs. Dioxus Labs, a startup backed by YCombinator and Khosla Ventures, was founded on the thesis that we could wrangle Rust into the “do-it-all” language of the future for app development.

Before Rust, I spent time across the entire stack, writing Python, C, CUDA, and JavaScript for plasma physics simulations (HPC). Not only was I solving partial differential equations on expensive super computing clusters, I was wrangling the shittiness of python installations, banging my head against broken CUDA drivers, stumbling through terrible C build chains, and trying to wrap my head around the ridiculousness of the JavaScript ecosystem. There’s a reason tools in research usually suck: researchers don’t have time to wade through a zillion different configs, toolchains, and poorly maintained documentation outside their core discipline.

Discovering Rust six years ago was like finding a candle in the darkness. I ported over my electron plasma simulation code in less than a week and had it wrapped in a Yew-based frontend in just a few days. What originally took me two years to build I had replicated in just a week with a single language. It felt like there was finally a tool “sharp” enough for the next generation of impossible problems.

A common response to the LogLog article was “Rust is not designed for that usecase.” And sure, maybe if you used the right combination of scripting languages on top, you might ship a game faster. But why can’t we fight to make Rust better and be that “good enough” tool for the next generation of plasma physicists, biotech researchers, and AI engineers? I don’t care if TypeScript is 20% more productive at UI development if I could use my existing language knowledge to sequence the human genome or protect the world’s internet from DDOS attacks.

I’m of the mindset that Rust can and should be improved until it’s good enough at most use cases people throw at it - I’m not interested in giving up. I’d rather the “kwisatz haderach of programming” come this generation, not the next. Rustfmt, Rustdoc, and Cargo are amazing projects - why throw them out? There’s real problems in this world to solve and life is too short to keep waiting for yet another language to build up an equivalently large developer community, funding, and momentum.

Rust’s success is not a technical feat, but rather a social one


I argue that Rust’s success is social in nature. My hot take: Rust’s popularity does not come from its technical merits. For another language like Nim, Odin, or Crystal to rise to the limelight, they would need to move heaven and earth. Rust neatly fills the gap that the developer community wants from a modern programming language: speed, type safety, and portability. Rust is fast - unlike Python, type-safe - unlike JavaScript, and portable - you can use it basically anywhere LLVM targets. The same cannot be said about languages with large runtimes or weird compiler infrastructure.