In a DevX, Richard Mansfield argues that OOP is better in theory than practice. Here's the intro to the article:
Think object-orient programming (OOP) is the only way to go? You poor, misguided soul. Richard Mansfield contends that OOP is just the latest in a history of ideas that sound good in theory but are clumsy in practice.
Like many ideas that sound good in theory but are clumsy in practice, object-oriented programming (OOP) offers benefits only in a specialized context--namely, group programming. And even in that circumstance the benefits are dubious, though the proponents of OOP would have you believe otherwise. Some shops claim OOP success, but many I've spoken with are still "working on it." Still trying to get OOP right after ten years? Something strange is going on here.From OOP Is Much Better in Theory Than in Practice
Referenced Wed Jan 19 2005 15:01:22 GMT-0700
I personally have a few beef's with Richard's arguments in the specific, but not his general direction. Even if you don't accept Richard's argument, I think its interesting to read this article alongside some of Paul Graham's essays. Java and other OOP languages are intended for a particular kind of programming. Paul calls it "accreting programs as a series of patches." I love that phrase. What if you're not doing that kind of programming?
One of the big value propositions of OOP is code-reuse and I argue to my students that we are getting better at code-reuse. However, that gain has been primarily based on packaged abstractions and frameworks (think PHP) than it has on components. Web services are the latest step in packaging abstractions.