A critique of object-oriented programming

Whether you agree with it or not, this critique of Object Oriented Programming is well worth the read.  The author has certainly done his homework and he raises a number of very valid points, the most obvious being that OOP, like any other tool, is not appropriate for everything.  I would argue that object oriented design is appropriate in most cases, but not all designs can be expressed well in the currently available OO programming languages.  I’ve seen designs and implementations that have been “over-OOPed,” just as I’ve seen designs and implementations that are too strongly structured.  Just because a  tool can be used inappropriately doesn’t prove that the tool is bad.  As for whether OOP is appropriate for business applications?  I’d say that it depends on the application.

The author’s challenge to rewrite any submitted OO business application using non-OO techniques is biased in his favor, just as it would be in my favor if I offered to rewrite one of his non-OO applications using OOP.  It’s almost always easier to clone an existing application—especially when you have access to the source and the brains of the original programmer—than to create an application from scratch.