News: 0000820604

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

Five years of Rust

([Development] May 15, 2020 12:48 UTC (Fri) (corbet))


It seems that the Rust programming language [1]has only been around for five years . " With all that's going on in the world you'd be forgiven for forgetting that as of today, it has been five years since we released 1.0 in 2015! Rust has changed a lot these past five years, so we wanted reflect back on all of our contributors' work since the stabilization of the language. "



[1] https://blog.rust-lang.org/2020/05/15/five-years-of-rust.html

Five years of Rust

Well, it took them five years to get to 1.0, so I guess ten years in all? :-)

I tried Rust for the first time a while back (I am mainly working in C++), and it's not bad at all. Solid ownership semantics, documentation written for programmers, a suitably rich standard library, supposedly a good FFI (I didn't try it myself, though). I do have some issues with how things get around error handling and Option vs. Result; it feels a bit unneededly complex. But overall a pretty positive experience.

But it's a pity that it, like almost all newer languages, really wants to own your package manager; they even go as far as making cargo a build system. (Yes, it's optional, but they recommend it even for the toy project in the Rust book, so it's pretty clear where they want you to go.) This is only fine if all your code is in a single language! The Go people solve that saying “oh, just rewrite everything in Go”, but I had higher hopes for Rust.

Five years of Rust

Well, it took them five years to get to 1.0, so I guess ten years in all? :-)

I tried Rust for the first time a while back (I am mainly working in C++), and it's not bad at all. Solid ownership semantics, documentation written for programmers, a suitably rich standard library, supposedly a good FFI (I didn't try it myself, though). I do have some issues with how things get around error handling and Option vs. Result; it feels a bit unneededly complex. But overall a pretty positive experience.

But it's a pity that it, like almost all newer languages, really wants to own your package manager; they even go as far as making cargo a build system. (Yes, it's optional, but they recommend it even for the toy project in the Rust book, so it's pretty clear where they want you to go.) This is only fine if all your code is in a single language! The Go people solve that saying “oh, just rewrite everything in Go”, but I had higher hopes for Rust.

Five years of Rust

Even earlier, Graydon Hoare started to work on Rust in 2006 :-)

Five years of Rust

Even earlier, Graydon Hoare started to work on Rust in 2006 :-)

Five years of Rust

There is cgo which makes binding C code to go and C to to go quite trivial as long as you only share data allocated on the ”C side” and don’t store references to go memory in C. Unfortunately it doesn’t play very well with valgrind as even hello world programs produce lots of warnings. Maybe there is a good supressions-config for go? If there is know please let me know!

All the evidence concerning the universe has not yet been collected,
so there's still hope.