Subobject-oriented programming: diamonds are forever

Who: Marko van Dooren
When: Tuesday the 16th, 14h.
Where: B31.
What: Subobject-oriented programming: diamonds are forever

Classes are fundamental elements in object-oriented programming, but they cannot easily be assembled from other classes. As a result, many code patterns such as associations, graph structures, and so forth are duplicated over and over again. Subobject-oriented programming overcomes this problem by augmenting object-oriented programming with subobjects. Subobjects can be used as buildings blocks to configure and compose classes without suffering from name conflicts. By relieving the subclassing relation from its duty as a pure code reuse mechanism, subobjects solve the diamond problem that has plagued object-oriented programming for decades.

Subobject-oriented programming has previously been implemented as a language extension to Java with Eclipse support and as a library in Python. Currently, we are moving away from using Java as the host language and instead using more ideas from Eiffel and Smalltalk.

In this talk, I will give an introduction to subobject-oriented programming and present the latest developments and the roadmap for the future. In particular, we want to remove fields from the language turn individual methods into subobjects. Combined with a mechanism similar to family polymorphism, this should e.g. allow any subobject-oriented program to be turned into a distributed program with little to no modifications to the original source code.


Marko van Dooren is a guest professor at the department of Applied Mathematics, Informatics, and Statistics at the University of Ghent. He leads the programming language research group and teaches courses on object-oriented programming, basic logic, type systems, and leads the final software development project of the bachelor in Informatics. Marko obtained his PhD at KU Leuven in 2007. His research mainly focuses on object-oriented programming languages and more in particular the subobject-oriented programming paradigm. To simplify experimentation with new language concepts he developed the Chameleon framework for modelling software languages and language independent programming tools.