I'd like to comment the often heard argument "if you write ugly programs in <insert any language> here, it is just lack of discipline...".
In my experience, lack of discipline is a very common character trait. And as I (and I assume all of us) must often work with (maintain, improvce, replace) code written by others, it is of no great help that *we* of course are as disciplined as one can only imagine, right? If the guy who originally commited the sin (s)he called a program just happened to have been way back in the looong queue when god handed out discipline to programmers, the code will suffer all kinds of (avoidable) problems.
Therefore languages used for "every day coding" should try hard to not to rely too heavily on things like "it is ok, you just need discipline", "this feature might be dangerous, so you should know what you do", or "here's a shotgun, try not to shoot yourself in the foot". Just like the famous red button with the sign "do not press"...
So, it boils down to: choose the right language for the task andthe personnel.
I am not saying C++ is bad, by the way. I quite like it. (Stil, there are lots of things I'd rather see changed.)
Still, I for my part have the shotgun rather locked away than in the kitchen. For those rare tasks that need the shotgun, I can deal with having to unlock the gun cabinet. (Again, this is not to say C++ is bad, and Java, C# or whatever to final solution. Any language has weaknesses and strengths. Just some have more of the former...)
just my 2ct
Bookmarks