Do they? I tend to find that C++’s features are often quite disjoint, which means that you can pick-and-choose which bits you want to use but the language isn’t quite designed like a coherent whole as some other languages are.
Do they? I tend to find that C++’s features are often quite disjoint, which means that you can pick-and-choose which bits you want to use but the language isn’t quite designed like a coherent whole as some other languages are.
My favourite example is Python, I started using it with version 1.6 and even though I only use it for small scripting tasks, always followed each release since then.
It might appeal to beginners, but underneath lies a language as powerful as C++, where even the most savy will fail to remember what changed between minor releases.
I'm also quite sure that we will see similar issues with other languages in the coming decades, with new paradigms becoming popular and existing languages trying to retrofit those in their design. C++ is one of the oldest and biggest (in term of usage) language that is still used for new projects and evolving, the competition is one or two decades younger, they still have plenty of time to evolve into monsters.
Many think that they know what they are using, but never bothered to actually read the language reference manual.
C++ is very fast and entrenched in a few markets ( gamedev, trading, etc) but that's it. As a language it is quite average, encumbered by too many features, too many corner cases.
Many more modern Languages like Java, Python, Rust and Go have practically only one compiler/reference implementation and a couple of much less popular ones.
I'm not a proficient C++ programmer, but it appeared to me that there aren't that many programmers who know or even use the complete standard?