| I think you're asking why you'd want to use Rust over C++? First, to establish what we're not losing by using Rust: * It can be as fast as C++ (in essentially all cases--all but compile-time metaprogramming related situations, after some in-the-works reforms are implemented). * It can be as deterministic as C++ (usable in hard realtime systems). * It has great FFI-level C compatibility. Advantages over C++: * It is substantially safer than C++. Outside of unsafe blocks, it is memory-safe and many other forms of undefined behavior are absent, including data races (unlike not only C++, but Java, Go, and most other mainstream languages that support multithreading). * In a number of cases, it could potentially be faster than C++ by utilizing Rust's much stricter aliasing semantics. * It should be able to compile much faster than C++, and it can infer much more thanks to its type system. The above are things that I don't think can be shoehorned into C++ backwards-compatibly. I'm not including features like ADTs because I see no reason C++ couldn't have them. There are plenty of reasons not to choose Rust over C++, including language immaturity, implementation immaturity, library immaturity, ecosystem immaturity, and lack of familiarity. But language feature for language feature, it offers substantial benefits. |