Thank you for the teaching on how to write better software

I would like to thank the community for a skill that you though me, a skill that in my opinion is very often unstated when discussing the difficulty of learning Rust: writing sound software.

I have to say Rust is hard to learn. I came from a C++ and Python background, and it took me 6 months of intense commitment to get an understanding of its main ideas, and how to work with them.

With that said, what I have been learning the most over those 6 months was not Rust in particular, but how to write sound software in general, and that in my opinion is the largest asset that the rust community tough me, through the language and tools that you developed.

Under this prism, it was really easy for me to justify the step learning curve that Rust offers: I wanted to learn how to write sound software, writing sound software is really hard, and the Rust compiler is a really good teacher.

Is it perfect? Of course not, but let's look at the alternative: how much would I have to pay to have someone teach me about all the things that the Rust compiler though me while at the same time produce something useful? Can you imagine having someone going through +10k lines of code C/C++ and describe, with the detail and rigor that the borrow checker offers, why that software is unsound? It would have taken thousands worth of euros to audit such code. Not to mention how difficult it would have been to prototype, as opposed to have an audit over a frozen piece of code.

After 6 months of writing Rust code, I can now finally start to be able to predict whether a non-trivial piece of code will compile or not in Rust, and that IMO is the hallmark test of whether I can detect unsound code.

This ability to identify unsound code transcends Rust's language, and in my opinion is heavily under-represented in most cost-benefit analysis over learning Rust or not.

All of this to say that I would like to thank all of the developers and contributors of the Rust language and ecosystem, by dramatically reducing the cost of learning how to write sound code, thereby enabling me (and many others) to leverage this skill when writing software.

13 Likes

This.

5 Likes

All in all I think everyone here will agree with your post. That is why we are here.

I have a little nitpick with the notion that Rust hard to learn though. At least compared to C++. C++ is a massively huge and complex language. I have been using C++ for many years and I'm very sure there are large areas of it that I have no idea about. I would go so far as to claim that there is no one person who knows all the C++ features and how they interact. Especially after having seen Bjarne himself faltering over over the meaning of a slide of C++ code at some presentation.

That is before we start talking about the difficulty of learning how to write C++ which is guaranteed not to have memory usage errors or data races...

1 Like