SELF

Designed by David Ungar and Randall Smith in 1986, SELF was an OOPL designed to get around the problems that can be presented by the hierarchy of classes in an OOP system. This "fragile base class problem" appeared in Smalltalk because classes may inherit properties that are "wrong."

Instead of the duality between classes and instances, SELF is based on "prototypes." To create a new prototype, you copy an old one and add the required properties. The difference between classes and instances has thus been eliminated.