The Common Sense of Object Orientated Programming

Trygve Reenskaug · 2008

The essence of object orientation is that networks of communicating objects work together to achieve a common goal. Surely, the common sense of object orientated programming is that we should write code that describes how this works. We have, unfortunately, chosen differently and code is commonly written in terms of classes. A class tells us everything about the properties of the individual objects that are its instances. It does not say how these instances interact to achieve the system's behavior nor does it say how they represent the system's state in the objects and the relations between them. The result is that our code does not reveal everything about how a system will work. This is clearly not satisfactory, and we need a new paradigm as the foundation for more expressive code. We propose that DCI is such a paradigm. It separates a program into different perspectives where each perspective focus on a certain system property. Code in the Data perspective specifies the representation of system state. Code in the Context perspective specifies runtime networks of communicating objects. Code in the Interaction perspective specifies how the networked objects collaborate to achieve the system behavior. The BabyIDE1 is an experimental interactive development environment that supports the DCI paradigm with specialized browsers for each perspective. These browsers are placed in overlays within a common window so that the programmer can switch quickly between them. The BabyIDE1 experiment marks a new departure for object oriented programming technology. It opens up a vista of new and interesting research challenges and product opportunities. Some of these challenges and opportunities are touched upon in a final chapter of this report.

Read the paper · More papers on PaperTik