The Early History of Smalltalk (1993)
The Early History of Smalltalk (1993)
Author: Alan C. Kay
Affiliation: Apple Computer (kay2@apple.com)
Permissions: This material may be copied without a fee, provided it is not for direct commercial gain, the ACM copyright notice is included, and the publication title and date are preserved. All other republications require specific permission/fees.
Abstract
"Most ideas come from previous ideas."
During the 1960s, particularly within the ARPA circles, a variety of concepts regarding "human-computer symbiosis" emerged. These were driven by the advent of interactive time-sharing systems, graphical displays, and pointing devices. Simultaneously, sophisticated programming languages were being developed to model semi-intelligent behaviors and intricate systems, such as oil refineries.
The subsequent transition toward modern personal computing—characterized by object-oriented design and overlapping window interfaces—did not happen by simply making the "old things" better. It required a fundamental shift in perspective.
The Paradigm Shift
The goal was not merely to create a better way to handle mainframe computing or to provide users with more abstract data structures. Instead, the reality of exponential growth in computing power—which we can represent as —demanded that the innovations of the sixties be viewed as the foundation for something entirely new.
Key Visionary Goals:
- The Dynabook: A handheld device allowing computation in ways impossible on a shared mainframe.
- Educational Philosophy: Because millions would use these devices, the UI needed to be a learning environment inspired by Bruner and Montessori.
- Biological Architecture: To manage massive scope and complexity, traditional control structures were replaced by a biological metaphor: protected universal cells that communicate exclusively via messages to simulate any behavior.
Smalltalk represented the first holistic realization of these concepts, drawing from its ancestors in language, hardware, and UI design. It sought a "Kuhnian paradigm shift," akin to the impact of the printing press, by taking extreme positions to force the invention of new styles.
Chronological Development of Smalltalk
| Era | Focus / Milestones | Key Technologies & Concepts |
|---|---|---|
| 1960–66 | Early OOP & Formative Ideas | B220 File System, SketchPad, Simula II |
| 1967–69 | The FLEX Machine & Personal Computing | Doug Englebart's NLS, Plasma Panel, GRAIL, LOGO, Dynabook III |
| 1970–72 | Xerox PARC: Early Iterations | KiddiKomp, miniCOM, Smalltalk-71, Overlapping Windows, Font Editing, Byte Codes, Iconic Programming |
| 1972–76 | The First "Real" Smalltalk | Smalltalk-72, UI Principles, Application System, ST-74, "ooze" storage management, Children's software |
| 1976–80 | Modern Smalltalk | "Burn our disk packs," The Notetaker, Smalltalk-76, Inheritance, ThingLab, Apple Demo |
| 1980–83 | Release Version | Smalltalk-80, Transformations, Coda |
Supplemental Materials & Credits
Appendices included in the original text:
- Appendix I: KiddiKomp Memo
- Appendix II:
Smalltalk-72Interpreter Design - Appendix III: Acknowledgments
- Appendix IV: Event-Driven Loop Example
- Appendix V:
Smalltalk-76Internal Structures
Dedications:
- To the Xerox PARC LRG team: Dan Ingalls, Adele Goldberg, and the gang.
- To the Visionaries: Dave Evens, Bob Barton, Marvin Minsky, and Seymour Papert.
- To the Foundations: The four great 60s conceptions:
SKETCHPAD,JOSS,LISP, andSIMULA.
Introduction: Reflections from 35,000 Feet
I am writing these words while flying in an airplane. Resting on my lap is a five-pound notebook computer—the "Interim Dynabook" of 1992—which, by the end of this year, will retail for less than $700.
![Conceptual Image of a 1992 Notebook Computer]
This device possesses:
- A high-resolution, crisp bitmap screen.
- Overlapping windows and intuitive icons.
- A pointing device.
- Substantial computing power and storage.
- Object-oriented software.
- Integrated networking (with wireless options).
Smalltalk runs on this machine and remains a primary tool for my work with children. Quantitatively, this device exceeds the original Dynabook vision; qualitatively, it is almost there. It is the realization of what we envisioned in the late sixties.
Smalltalk was a piece of a larger puzzle—the pursuit of "personal computing" shared by ARPA and later Xerox PARC. Because so many researchers contributed, assigning precise credit is nearly impossible. As Bob Barton often quoted Goethe:
"Share in the excitement of discovery without vain attempts to claim priority."
My goal is to illustrate the influences and how they were reshaped by the metaphor of personal computing. It wasn't just the ideas, but the attitude of the pioneers that made Smalltalk possible. Figures like Ivan Sutherland, Marvin Minsky, and Butler Lampson understood that while their current creations were impressive, they were still far from the ultimate threshold.
The Philosophy of Progress:
- Small minds seek to establish rigid religions.
- Great minds simply seek a more efficient path up the mountain.
While Newton famously stood on the shoulders of giants, many in computer science unfortunately stand on each other's toes. Myopia remains a hurdle; "outsight" is often more valuable than insight.
Conceptual Example: The Event Loop
To understand the shift in control, consider the basic structure of the event-driven systems developed during this era:
while (system_running) {
event = wait_for_event();
target_object = find_target(event);
target_object.receive_message(event);
}
This simple loop replaced the rigid, linear execution of earlier mainframe programs, allowing for the fluid, interactive experience of the modern UI.