When Rust Makes Sense, or The State of Typed Languages

Michael Donaghy wonders why Rust – which forces programmers to do manual memory management – seems to be gaining traction, and surveys the state of typed languages:

Even as I’ve admired the design work going into Rust, I’ve been confused by its growing popularity. A language without garbage collection, in 2015? There are use cases where you need that, and a replacement for C++ in its remaining niches is a worthy goal, but for most developers managing one’s own memory is an extravagance, akin to growing one’s own food - something you might do on a hobby project, but never for a paying client.

It seemed bizzare that users of Python or Ruby looking for an ordinary, general-purpose language with a decent type system would fall on this systems language. Rust’s spectacular engineering makes memory management far less of a chore than it’s predecessors - but a chore it remains. The language puts an emphasis on memory usage that- well, saving memory is never unwelcome, but for general-purpose languages there are generally better places to spend your budget.

But then I tried to put myself in their position, and survey the landscape of mainstream functional languages - or rather, mainstream languages with decent type systems - with fresh eyes.

I am excited by Rust. For me, it’s the most interesting programming language of recent years. When I switched to Ruby from Java, the dynamic typing was freeing and made me feel super productive. But now I’ve worked on a few large projects where I keep wishing I could enforce some type safety. In retrospective, it was Java’s lame type system that was the problem.

Rust has a lot going for it: the type system is great, it enforces immutability by default, and it’s fast. But to me web programming matters most because that’s the work I do. And it’s not clear how well Rust will work for web programming. Rust makes managing memory easier, but you still have to do it.

Sometimes I think I would like a language like Rust that’s aimed more directly at web systems programming. Something like Go, but caught up on the last 30 years of programming language design research. Donaghy’s survey of the available options is not super-promising, but maybe OCaml is more what I am looking for.

(There are many additional comments on this piece, including responses by the author, on Hacker News.)