Design Principles Behind Smalltalk. Daniel H. H. Ingalls. Learning Research Group. Xerox Palo Alto Research Center. BYTE Magazine, August 1981


The purpose of the Smalltalk project is to provide computer support for the creative spirit in everyone. Our work flows from a vision that includes a creative individual and the best computing hardware available.

We have chosen to concentrate on two principle areas of research: a language of description (programming language) that serves as an interface between the models in the human mind and those in computing hardware, and a language of interaction (user interface) that matches the human communication system to that of the computer.

Our work has followed a two- to four-year cycle that can be seen to parallel the scientific method:

Build an application program within the current system (make an observation)

Based on that experience, redesign the language (formulate a theory)

Build a new system based on the new design (make a prediction that can be tested)

The Smalltalk-80 system marks our fifth time through this cycle. I'll start with a principle that is more social than technical and that is largely responsible for the particular bias of the Smalltalk project:

Personal Mastery: If a system is to serve the creative spirit, it must be entirely comprehensible to a single individual.


The article goes on to mention a dozen more principles that were equally unexpected by the Byte Magazine hobbyist readership. Personal mastery is the perfect companion to the personal computer which completes a vision that Byte documented.

Smalltalk has floundered after several decades of interest. It was only available to people who could justify paying money to express their creative spirit. Later it became clear that it would not recover because a growing internet was less concerned with power to individuals.