How can we get a simpler but much more general subclass construct? This position paper takes a "specialisationist" approach to inheritance. Old SIMULA virtues are restored to prominence, but boiled with new unificational ingredients to obtain a substrate of specialisation. Ever since the advent of Smalltalk there has been a strong tension in the object-oriented community between two opposing views of the role of inheritance: as an incremental modification mechanism or as a vehicle for conceptual modelling. Madsen  and many others characterise the two approaches as the “American ” and “Scandinavian” schools, respectively. Nowadays, such a geographical terminology hardly remains valid (if ever it was), but the tension remains: should we strive for maximal flexibility of inheritance, to improve the possibilities for later unanticipated reuse, or should we attend above all to the conceptual integrity of the subclassing mechanism to aid the use of the programmers ’ intuition in the development process. Here we shall adopt a different terminology, focusing instead of the primary role of subclassing in the two views, and thus refer to modificationism and specialisationism: the former view would in principle endorse a description of oranges by inheritance from apples (sometimes called “sideways inheritance ” because it does not obey the structure of a classification hierarchy), the latter would allow these to be related only through a common superclass.
Object-oriented Technology Ecoop 2002 Workshop Reader, 2002, p. 95-101