I've programmed in C++ at professional capacity at some point of time, so I feel entitled to voice this opinion:
You may cut an infinite number of very sane programming languages from C++ standard, but slapped together they make a horrid mashup of non-orthogonal features which get in a way of each other.
If I had to guess it is because when they were before a choice: solve the problem with contemporary technique A) or B) they always chose both. Add C heritage and voila C++.
@jackdaniel Didn't someone say that the most important skill that a language designer must have is the ability to say "no"?
I searched but can't find the source for it. In any case, it's a skill no one that has been involved in designing C++ has.
@jackdaniel As someone who also programmed (and still does!) C++ professionally:
I'm having trouble cutting out a sane and fully-featured subset of C++, that retains the performance profile, in any way other than cleaning up some syntax rules. Maybe it's because I'm not a language designer.
To me, C++ design resembles lawmaking process. Faced with a problem, they look how to lawyer around existing rules with clever tricks and minimal additions to standard. I wish they stopped sometimes to clean things up.
Server run by the main developers of the project It is not focused on any particular niche interest - everyone is welcome as long as you follow our code of conduct!