The Worst Object-Oriented Language

I’ve been doing object-oriented programming and design since 1994. Most of that work has been centered on Objective-C, with a bit of dabbling in Smalltalk quite some time ago, occasional forays into Java, and increasingly more Python during the past few years. During the past year, I’ve finally had a reason to get deep into a project with C++, and now I know what I’ve been missing: A heap of nasty syntax and inflexibility, that’s what!

Don’t get me wrong, C++ is definitely a lot more powerful than just plain old C, and you can do some clever things with its templates and some other language features (with the caveat that in doing these clever things, you are relying heavily on the compiler doing lots of things that are far from explicit in the code, which is quite different from standard C). My main gripe with C++ is that the object-oriented constructs it provides are really very not suited to the practice of object-oriented programming as it stands today (which may be a subject of future postings here).

On a whim, I recently googled "worst object oriented language", and got some interesting results. This query produced 103 results, which Google whittled down to just 12 after removing what it thinks are probably duplicates. Four of those were essentially the same quote from one article, pasted into different contexts, while the other eight seemed to be unique utterances. In all of these cases, the language being described was (drumroll, please…) yes, C++. At least I’m not alone in feeling this way.