Why is OOP Ppoular?

There are many reasons for the continued popularity of object-oriented programming, some of them reasonable and valid, some more hype and hope than reality.

As with most innovations in computer science, there is the hope that OOP will be the magic bullet that solves the ``software crises'' and makes it easy to quickly and correctly produce new applications. Unfortunately, this reading seriously misrepresents the nature of the software crises. Yes, object-oriented techniques provide us with a new tool that helps produce a major improvement in productivity, in reliability, in usability. But each advance brings with it a new set of expectations, raising the bar still higher. The software crises simply means that what we want to do is always just a little more complex than what we know how to do any any point in time. Creating quality software is still a task that takes intelligence, creativity, discipline, and talent.

At least in the early days there was hope that because some Object-Oriented languages, such as C++ or Object Pascal, were built on top of earlier existing langauges (namely C and Pascal) that it would be easy to make the transition from one to the other. But unfortunately experience has shown this to be not true. Making effective use of Object-oriented techniques requires a new outlook, a new mindset, a new way of viewing the task of computation. For this reason, too much exposure to other ways of software construction can actually be a hinderence in learning Object-Oriented techniques.

But, on the other hand, one of the most important reasons for the long lived popularity of OOP, in my opinion, is that it is similar to the way ordinary people go about solving their everybody problems in real life. Thus, there is a resonance to the object-oriented ideas that makes them senible and intuitive, in a way that is not necessarily true in other programming techniques.

[audio] [real] Text to accompany slide3, in Chapter 1 of An Introduction to Object-Oriented Programming