https://ricomariani.medium.com/why-i-think-rust-is-the-way-forward-b7f434e896d4 by Rico Mariani
C programmers, especially programmers that can successfully use C code at the system level, are a dying breed. I should know, I'm one of them. Modern C++ has so many hazards and is so costly that I can't but view it as anything less than a total failure in the systems space. I can't begin to tell you how disappointing this is to me. Whether it's suitable for your problems is entirely up to you, but I'm convinced my problems are not helped by the use of Modern C++.
In contrast, Rust is lean, also modern, and squarely addresses the most important weaknesses that were in C without turning into a meta-programming hell-scape. By providing solutions to problems of data sharing and lifetime generally and creating solutions that are both readily practicable and performant they've done more to advance the state of the in systems programming than nearly four decades of C++.
I don’t see a future where C++ continues to be the systems language of choice and frankly I couldn't be happier about it. I'm very tired of telling developers not to use their tools the way the manual describes them. I'm tired of writing alternate "This actually works" manuals.
We can have a more “Pit of Success” correctness and performance story. We still have a responsibility to test everything, but we can start on a much better foundation.
@braincell @blinkygal My two biggest complaints about c++ are the complexity to learn, yes, but also the undefined behavior. There are so many nasty little sharp edges that turn out to be completely implementation dependent that the compiler will cheerfully pass and then generate garbage code. Exceptions mixed with setjmp / longjmp, unions with classes in them, the list goes on. And every new feature of the language increases the complexity of the language in a superlinear fashion (especially since you can never really remove any feature, not given that there's code people rely on using those features).