Top Ten Lies About OOP [From a keynote talk at the June 1993 Usenix conference by Mike Powell of Sun Labs, who is working on an object-oriented operating system in C++ (as recorded by Henry Spencer in the July 1993 issue of ";login:" magazine, whose remarks are in parentheses.)]
10. Objects are good for everything.
9. Object-oriented software is simpler.
(No: everything is a server, and servers are harder to write.)
8. Subclassing is a good way to extend software or libraries.
7. Object-oriented toolkits produce interchangeable components.
(No: you get components the size of a nuclear aircraft carrier, with internal interfaces that are too complex to duplicate.)
6. Using object-oriented programming languages helps build object-oriented systems.
5. Object-oriented software is easier to evolve.
(No: jigsaw-puzzle modularity is a serious problem.)
4. Classes are good for modularity.
(No: most worthwhile modules have more than one class.)
3. Reuse happens.
(No: you have to work too hard to make it possible. He distinguished between *use*, exploiting existing code, and *reuse*, building new code by extending existing code.)
2. Object-oriented software has fewer bugs.
(No: it has different bugs.)
1. C++ is an object-oriented programming language.