My personal anecdote. I used to be a top-notch C++ developer, if I do say so myself. I was able to quote the ARM by chapter and verse as it were. I left C++ a little over 20 years ago. Honestly, Java had gotten to the point it could do everything I needed to do. I've stayed abreast with the changes in C++11, 14, and 17 - but only out of curiosity. I really wouldn't want to go back to that world.
If I were starting new and needed a systems language I wouldn't even think about C++. Rust would be my choice, no question about it - and I'm certainly not a Rust fanboi by any means! As others have mentioned I'd use Rust just for Cargo alone! Seriously, package management for C++ is, was and will probably forever be an absolute mess. Who wants to go back to that?
Now that I think about it that's the difference between "legacy" languages and "modern" languages - dependency and artifact management. In modern languages I expect that to be taken care of uniformly regardless of operating environment. The legacy languages do not do this. This is akin to the separation of classical and modern physics based off quantum theory.
That's why new developers don't want to use "legacy" languages and even many of us older ones don't want to mess around with those environments anymore! Too much work is involved in maintaining your tools rather than getting work done!
If I were starting new and needed a systems language I wouldn't even think about C++. Rust would be my choice, no question about it - and I'm certainly not a Rust fanboi by any means! As others have mentioned I'd use Rust just for Cargo alone! Seriously, package management for C++ is, was and will probably forever be an absolute mess. Who wants to go back to that?
Now that I think about it that's the difference between "legacy" languages and "modern" languages - dependency and artifact management. In modern languages I expect that to be taken care of uniformly regardless of operating environment. The legacy languages do not do this. This is akin to the separation of classical and modern physics based off quantum theory.
That's why new developers don't want to use "legacy" languages and even many of us older ones don't want to mess around with those environments anymore! Too much work is involved in maintaining your tools rather than getting work done!