Comment Re:Write-only code. (Score 2) 757
The more powerful the language, the more it's like a loaded gun: You can use it responsibly and do amazing things with it, or you can put a bullet through your foot with it. Choice is yours... and the closer you get to bare metal with the language, the greater the chance of lead meeting foot at high speed.
Oddly, that brings to mind the famous quote from Bjarne Stroustrup himself...
"C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off"
I've only briefly looked at C++, but when I did, I understood what he meant. C++ lets you do some very complex, powerful and abstract things compared to C, but even in the small amounts I learned (and have since forgotten) you could see the potential for an overly confident smartass to misuse or fail to understand the subtleties of these features and have things go wrong in a manner that was far more convoluted, non-obvious and hard to debug in a sadistically high-level manner than simply overflowing some poxy buffer.
AFAIK (and IIRC!) Java- which came after C++- is in many respects *less* powerful and more constrained in terms of what you can do (or at least makes you do it more explicitly) and some criticised this as dumbing down for industry that wanted "quantity over quality" programmers. Maybe so, but would you want to deal with some horribly subtle bug that was ten levels of abstraction away, all because some naive just-out-of-college programmer did something a bit too clever for his own good when overloading an operator?
Now that I think about it, I remember reading criticism of C#'s increased flexibility in operator overloading (compared to the language it was mostly a clone of, Java) as being A Bad Thing for the same reason.