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!

As the system comes up, the component builders will from time to time appear,
bearing hot new versions of their pieces -- faster, smaller, more complete,
or putatively less buggy. The replacement of a working component by a new
version requires the same systematic testing procedure that adding a new
component does, although it should require less time, for more complete and
efficient test cases will usually be available.
-- Frederick Brooks Jr., "The Mythical Man Month"