Self was the first prototype-based programming language, and may still be the best known. Its development was inspired and strongly influenced by the pioneering work on Smalltalk By Xerox PARC. Self is a Smalltalk follow-on, and can be seen as a Smalltalk variant or dialect; though this is not strictly so if one defines Smalltalks as based on classes only, not prototypes. Self emerged from the University of California, Berkeley Smalltalk program, a custom RISC chip designed to run Smalltalk-80. Berkeley got the very first Smalltalk license (making it the first post-PARC Smalltalk) from Xerox PARC so they could put Smalltalk on their chip. Dave Ungar was head of the project, and became the main author of Self. He wanted to make a language that was in the Smalltalk family, but based on some different assumptions. Smalltalk is a very pure language, with a small number of principles, but Ungar wanted an even purer Smalltalk. The result was Self. Some wrote it SELF, but standard usage is Self. Self is a very minimal language based on a small, minimum number (3) of simple, concrete ideas, each of which merges two ideas from programming:

1) Prototypes = inheritance + instantiation.

2) Slots = variables + procedures (functions, methods).

3) Behavior = state + behavior.