Organizing Programs Without Classes¶
All organizational functions carried out by classes can be accomplished in a simple and natural way by object inheritance in classless languages, with no need for special mechanisms. A single model–dividing types into prototypes and traits–supports sharing of behavior and extending or replacing representations. A natural extension, dynamic object inheritance, can model behavioral modes. Object inheritance can also be used to provide structured name spaces for well-known objects. Classless languages can even express ‘class-based’ encapsulation. These stylized uses of object inheritance become instantly recognizable idioms, and extend the repertory of organizing principles to cover a wider range of programs. <hr>
Lisp and Symbolic Computation 4(3), Kluwer Academic Publishers, June, 1991.