I&#x27;m building a music synthesiser in Rust, and it&#x27;s a joy to work with.<p>If you&#x27;re used to writing systems languages, you might want to learn it because it&#x27;s the highest-level language I know that prays to the gods of zero cost abstraction. You still get all the control from C&#x2F;C++ while gaining several convenient features. ADTs and pattern matching are personal favourites. It&#x27;s widely known that Rust automates a lot of manual memory management without a GC, but it&#x27;s not as widely known that the same language features also provide very very good assurances for concurrency: it forces you to acquire locks before you can touch synchronised data, it ensures that good behaviour around multiple consumers or single producers for shared memory, etc.<p>If you&#x27;re used to writing in the likes of javascript, python or ruby, Rust is a wonderful gateway drug to systems programming, and it&#x27;s probably the most accessible alternative. Instead of seeing the compiler&#x2F;borrow checker as bitching and moaning at _everything_, you should see it as holding your hand and helping you navigate some of the trickier bits in writing safe code. As a bonus, it&#x27;s probably one of the sanest languages you can use for writing FFI code for your language of choice when you just need the extra performance.<p>If you&#x27;re a functional programming fan, you&#x27;ll soon get the sneaking suspicion that Rust is a wolf in sheep&#x27;s clothing. It&#x27;s an expression based language with immutability by default, it features Algebraic Data Types and Pattern Matching, uses Result&lt;&gt; (think Haskell&#x27;s Either) for error signalling instead of exceptions. The closest thing to &quot;object orientation&quot; are traits, which are actually much closer to type classes.