anyone that believes in perfection is an idiot.
It was never at all meant to be perfect, it was meant to be useful.
I'm surprised at all the whining about C++, especially the idea that C is somehow a more readable or organized language. Perhaps after all the general purpose programmers went elsewhere, the COMMUNITY of c programmers started writing cleaner code... ok, but the language... promoting that?
C++ aimed for complete-as-possible compatibility with C, especially static linking which helped ensure that C++ can follow C anywhere, a useful thing.
blaming C++ for the stupid things purists might like it odd, since purists have never been fond of C++ afaik, and if so, why are they in a multiparadigmed language that allows you to break most of it's rules at will (using C syntax).
It's like blaming Country Music Lyrics on English.
I learned C++ around 1993-94 I guess after having been a C programmer from about 84-85. This is the way to use it. The fact that you can have class hierarchies with structures is itself useful. I have converted C code to C++ simply by making a structure able to initialize itself, a safe fix for code which would have been a nightmare to fix some other way (go to every malloc of the structure and do it there, all throughout the code?)
But evidently such use of C++ provides too much temptation for some. That's too bad.
Also, as a C programmer at that time we all became aware of how the C compiled, what instructions you were really looking at, and in C++ at that time, my colleagues and I at least (in the game industry then) continued to view C++ this way. If I learned a new feature of C++, I studied how it would look in memory, how it would look if it was a C structure (or set of such), making it quite easy to avoid certain problems.
As a C programmer I expected myself to do this. Also, this revealed where the performance hits were, and what to avoid. C++ is multiparadigmed (or unparadigmed, or, a crazy toolbox)... so? man up and learn the tools including which ones you don't want.
As far as the problem of what OTHER programmers do with C++... if people have not seen crazy things done with C... confusing bad things... I cannot explain that. How can that be? Some historical accident because the language does not prohibit it, it's up to the programmer.
Then again, as long as it's not proprietary, I couldn't care less what languages other programmers like.