I’m no fan of C++, but I look like a C++ evangelist compared to this poor chap, who assails C++ with a vengeance and eloquence that I have rarely seen. A choice excerpt:
C++ is philosophically and cognitively unsound as it forces a violation of all known epistemological processes on the programmer. as a language, it requires you to specify in great detail what you do not know in order to obtain the experience necessary to learn it. C++ has taken premature optimization to the level of divine edict since it cannot be vague in the way the state of the system necessarily is. (I’m not talking about totally vague, but about the kind of vague details that programmers are supposed to figure out even after a good design has been drawn up.) in other words, a C++ programmer is required by language design to express certainty where there cannot be any. a C++ programmer who cares about correctness is a contradiction in terms: correctness is a function of acquired certainty, not random guesswork. I’m discounting the ability to experiment with something through educated guesses, because the number of issues that must be experimented with in this fashion is gargantuan in any non-trivial piece of code. C++ is a language strongly optimized for liars and people who go by guesswork and ignorance. I cannot live with this. I especially cannot live with it when I cannot even ask for help in maintaining the uncertainty I have. e.g., if I do not have enough foreknowledge to know exactly which type I need for a variable (and there is no type hierarchy, so I cannot be vague), I must guess, which is bad enough, but I have to repeat the guess all over! I cannot say “this thing here has the same type as that thing over there, and I’d rather you go look there because I just want to put down my guesses once”—there is no
typeofoperator and it certainly cannot be used in those anal-retentive declarations to afford a limited form of type propagation.
If you’re still a fan of C++, and have yet to adopt a decent language, maybe such a well-written, passionate rant will change your mind.