

They'll generally give you more explanation than the bare minimum and help you solve the issue. For now, let's talk about a bunch of things that help during the journey of getting to your code to compile: Compilation errors The error messages and warnings are exquisite. We'll talk about some of these guarantees and "restrictions" later in the post. This might seem a little limiting, but I ended up really liking the added "restrictions" because of the additional compile time safety guarantees they provide. This rule, along with a few others, apply to basically every variable in Rust*. I find it useful to think of the borrow checker almost as a "compile-time read/write lock": At any given time, only one writer (mutable reference) or any number of readers (immutable references) are allowed for a given variable. A lot of the language's safety guarantees come from this feature. One of the core parts of Rust is its borrow checker. Thoughts on Rust Compiling When you first start using Rust, it takes a lot longer to get to the point where things compile (vs other languages), but it feels much more likely to work once you get to that point. I've also worked on safety critical systems where performance is important. I've worked on very large C++ codebases and small ones as well. I've used it almost daily for several years as part of my job. All jokes aside, I think it's important context to mention that I'm pretty experienced with C++. But first, a Haiku: I know C++ I make pretty fast software Segmentation fault. This post goes into depth on some of my thoughts on Rust and how it compares to C++.

In fact, it was useful enough that I ported the rest of the project to Rust.

I used Rust for the first time as part of a serious project and it was a great experience. Or "Rust vs C++" if you like things spicy.
