On his SPLASH talk, James Coplien pointed out, that we might have done OOP wrong for the last decades: http://www.infoq.com/presentations/Reflection-OOP-Social

He said, that we should stop focusing on classes and abstractions, but focus on objects and their interactions instead. That we should imagine a software system as a collaborating cluster of (concrete) objects, with emerging characteristics (therefore it is not possible to understand a system from just reading the code).

And he seems to share my aversion against class inheritance and claims what he calls “contextual polymorphism”, an object should be able to change its behaviour depending on the currently executed use case.

Leave a Reply

Your email address will not be published. Required fields are marked *