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.

Contents    Page-10    Prev    Next    Page+10    Index