An Anonymous Coward writes:
After many years of waiting, version 1.0 of the Rust programming language has finally been released. The Rust home page describes Rust as "a systems programming language that runs blazingly fast, prevents nearly all segfaults, and guarantees thread safety."
Thanks to the hard work of noted Rust core team members Yehuda Katz and Steve Klabnik, Rust is now poised to become a serious competitor to established systems programming languages like C and C++.
The announcement has brought much jubilation to the followers of Rust, who have been eagerly awaiting this milestone release for so long. With only 1,940 open issues and over 11,500 issues already closed, Rust is finally ready for users to build fantastically reliable software systems using it.
So you think the people who don't write unit tests for C++ would write them for C?
And what is wrong with using the standard library? Do you also reimplement printf to avoid using the C standard library? The standard library is there to be used, and should consist of decent code; if not, use another vendor (if the standard library implementation is shit, probably the compiler is, too).
Of course you have to learn how to correctly use the library, just as you have to learn how to correctly use the language (and mind you, there's more than enough C code written by morons as well). If you think that implementing a stack by inserting/removing values at the beginning of a vector (yes, I've seen that!) is a good idea, then you are simply clueless. But that's not a fault of the standard library, that is the fault of the code author.
And there are many more ways to shoot yourself in the foot with C style return-error-code error handling; You can simply ignore errors without immediate consequences — until the error actually occurs. In which case the ignored error can have fatal consequences. Now in C++, you of course also can ignore exceptions, but you have to do so explicitly. just not handling the exceptions will cause the program to terminate, instead of simply continuing despite of the error.
And of course, if you prefer C-style error handling, you can use it in C++ as well; however you can even improve on that by making completely ignoring the return value a runtime hard fail even if no error occurred (I don't know a way to make it a compile time error, though).