> Others are rightly pointing out that only #3 is fundamentally unique to Rust. All of these other things could be done for C++. But, importantly, they haven't.
Except they have, but some people aren't keeping up with C++ news, only bashing it.
1) can be easily done with bounds checked enabled STL, like modern C++ compilers do in debug builds, or force enable them in release builds.
2) Conan, vcpkg, and better than cargo, because they support binary dependencies.
I tested most cpp pkg managers (including vcpkg and conan); They suck. They suck so much that I reached the conclusion that using git submodules was the way to go, and saw “just copy the header file” in readmes of modern projects. The pkg managers are hard to install and configure, don’t integrate well with the tooling, don’t support most stuff, have out-of-date documentation, and are just buggy.
Cpp API design also seems to suck. Doing a simple curl request is bloody complicated.
Yet millions of devs are adopting them every day, they might be really masochistics, like myself every time I rebuild from scratch my Rust compile time check, that with compiling everything from scratch takes 18 minutes on average laptop, versus 5 minutes in C++ (thanks binary libs).
Cargo keeps failing my litmus test for usability of compiled languages.
I just look forward that something like Cranelift will fix it.
Without an ability to tweak build flags. Which makes them useless. And since they are not really crossplatform either, you better stick with portage, which is still far behind cargo.
Except they have, but some people aren't keeping up with C++ news, only bashing it.
1) can be easily done with bounds checked enabled STL, like modern C++ compilers do in debug builds, or force enable them in release builds.
2) Conan, vcpkg, and better than cargo, because they support binary dependencies.