Paul Hinze has written Go for a decade. He bought the Rust book, thumbed through it, let it gather dust. What finally worked? Claude.
Hinze works at Miren and needed a demo for TokioConf. He built a chat server by telling Claude to write it, then spent a long time asking the AI what the code actually did. "Treated it like my Rustacean pair I could bug to explain things to me," he writes. "Not nearly as good as a human, but patient, and available over airplane wifi."
He fell hard for Rust's exhaustive enums. Add a new variant to a type and every match statement that doesn't handle it lights up red at compile time. "I can stop writing tests for my own forgetfulness," he says. The ? operator won him over too, a concise alternative to Go's if err != nil pattern, though the implicit exits make him twitch. Go wants you to see every return path. Rust trusts the type system.
Go is actually the more implicit language. That surprised him. Rust's async runtime isn't part of the language itself. No go keyword. No built-in scheduler. You import something like Tokio and spell it out yourself. "Go is verbose at the surface and quiet underneath," Hinze writes. "Rust is dense at the surface and quiet nowhere."
He found tokio-console particularly impressive. Live-tailing the runtime, watching tasks tick in real time rather than snapshots like Go's pprof.
Hinze isn't alone in making this jump. The Rust Foundation's 2023 report found 28% of professional Rust developers came from Go. AWS, Google, Microsoft, Discord, npm have all adopted Rust for performance-critical systems, like Tailscale.
But he's not converting. "This old gopher hasn't suddenly transformed into a crab," he writes. "The trade-offs Go makes serve the kind of work I do most days."