- Published on
Rust Wins When Humans Skim

Rust's reputation was that it fought you. The compiler lectures you about lifetimes, and fighting the borrow checker — the part that refuses to compile code you're sure is fine — is a rite of passage every beginner's guide has to warn you about. Everyone calls this friction. It's actually the whole point — and it matters more now than when the language was designed.
That strictness was always a tax, and for decades the human paid it up front, by hand. So we reached for looser languages — Python, JavaScript — where you could move fast and find out issues later. When writing code was the slow, expensive part, arguing with a pedantic compiler was a bad trade, and speed won.
Then writing stopped being the expensive part. A model now produces two hundred lines in the time it takes to describe them, and the bottleneck moved from writing to trusting. Here's the uncomfortable truth the whole argument rests on: humans are dreadful reviewers of confident machine output. We skim. We read the first few lines, assume the rest is fine, and click approve — and the more fluent the code looks, the less carefully we check it.
A compiler doesn't skim. It's the cheapest, most tireless reviewer you'll ever have, and it reads every line with the same suspicion. Rust's in particular — through ownership and the borrow checker, and with no garbage collector to lean on — refuses to build a data race, a use-after-free, a null dereference, or an error you forgot to handle. When code is generated faster than anyone can read it, a language that mechanically rejects a whole category of bugs isn't slowing you down — it's catching exactly what your skimming won't.
This is also why Rust and AI suit each other. Models are brilliant at plausible code and oblivious to when it's subtly wrong; Rust won't run until the ambiguity is gone. Point an agent at a Rust project and the loop is honest — it writes, the compiler rejects, it fixes, and only correct code survives. Point it at a dynamically typed one and it hands you something that runs, passes a glance, and fails in production three weeks later.
Rust isn't alone here. A handful of languages sit at the same intersection of beloved-in-open-source and compile-time safety — TypeScript taming JavaScript, Kotlin and Swift baking in null safety, Elm promising no runtime exceptions at all. Rust just pushes the bargain furthest, down to memory and data races.
The best reviewer never gets tired, never skims, and never says yes to code that's wrong. We used to resent it for standing in our way. It was only ever standing in the way of our mistakes. Rust wins the moment we start to skim — and we're skimming more than ever in AI-native development.