Skip to content

Alan Kay and Smalltalk

Abstract

Alan Kay had a vision of computing that was more ambitious than any product he ever shipped: the Dynabook, a tablet computer for children that would serve as a “dynamic medium for creative thought,” transforming education the way printing had transformed literacy. He spent his career at Xerox PARC, Atari, Apple, and Disney building approximations of this vision, producing along the way the programming language Smalltalk, a system in which everything is an object, and influencing the graphical user interfaces that followed. He received the Turing Award in 2003. He later argued that the industry had copied the surface of this work and missed its central ideas.

Alan Kay
Alan Kay. Image: Marcin Wichary, CC BY 2.0, via Wikimedia Commons.

Utah and the Dynabook Vision

Alan Curtis Kay was born on May 17, 1940, in Springfield, Massachusetts. He grew up in New York and Australia, where his father’s work took the family. He read at three, was thrown out of a high school and of Bethany College in West Virginia, and from 1961 served in the US Air Force, where he learned to program on an IBM 1401. He then studied mathematics and molecular biology at the University of Colorado (degree 1966) and went to the University of Utah, where he worked with Edward Cheadle on FLEX, a small “personal computer” and its language, implemented on an IBM 1130. FLEX was the subject of his 1968 master’s thesis; his 1969 PhD dissertation, The Reactive Engine, developed it further. After the PhD he spent time as a researcher at the Stanford AI Laboratory.

Utah was one of the centers of early computer graphics research, led by Ivan Sutherland (who had created Sketchpad at MIT in 1963 and joined the Utah faculty in 1968) and David Evans, the department was building some of the first interactive graphical systems. Kay absorbed the idea that computers could be graphical, interactive, and personal. He was also deeply influenced by the ideas of Seymour Papert (constructionist education at MIT), J.C.R. Licklider’s 1960 paper “Man-Computer Symbiosis,” and Douglas Engelbart’s augmentation work.

In 1968, while still a graduate student and after meeting Papert at MIT that year, Kay conceived what he later named the Dynabook (he presented it with drawings in a 1972 paper): a personal computer for children, roughly the size of a notebook, with a flat-panel display, a programming environment simple enough for a child to learn, and enough storage and processing power to serve as a universal medium for knowledge. The form factor resembles the tablets of four decades later, but Kay himself rejects the comparison: in a 2013 interview he said that most of the Dynabook idea concerned letting users create and share computational ideas, which the iPad does not support, and that “we still didn’t have a Dynabook.”

Kay treated the Dynabook as a research target, concrete enough to direct effort and ambitious enough to require new hardware and software.

Xerox PARC and Smalltalk

Kay joined Xerox PARC in 1971 and ran its Learning Research Group, which had a specific mandate: build the Dynabook, or get as close to it as current technology allowed.

The first problem was programming. A computer for children needed a programming system that children could use, not FORTRAN, not assembly. Kay needed a language in which the fundamental concepts were simple enough to grasp quickly and powerful enough to express real programs.

His design was Smalltalk, a language in which every entity, without exception, was an object, and objects communicated exclusively through message passing. Numbers were objects. Strings were objects. Classes were objects. The control structures (if-then, while, for) were implemented as messages to Boolean and collection objects, not as built-in syntax.

"Smalltalk: everything is an object, everything is a message"

| x |
x := 5.                          "x is an Integer object"
x printString.                   "send message printString to x"
x > 3                            "sends message > 3 to x, returns true"
    ifTrue: ['big'] ifFalse: ['small'].   "message to Boolean"

"Classes defined in the language itself:"
Object subclass: #Animal
    instanceVariableNames: 'name'
    classVariableNames: ''
    poolDictionaries: ''
    category: ''.

Animal >> speak [
    ^'...'
]

Smalltalk was also a complete computing environment (the “image”): the programming tools, the debugger, the file browser, the GUI framework were all written in Smalltalk, running within Smalltalk, modifiable from within Smalltalk. You could inspect and modify the system while it was running. The boundary between language and operating system effectively disappeared.

Messaging vs. Classes

Kay later insisted that messaging (not classes or inheritance) was the central idea of Smalltalk and object-oriented programming. “The big idea is ‘messaging,’” he wrote to the Squeak mailing list in October 1998. “The key in making great and growable systems is much more to design how its modules communicate rather than what their internal properties and behaviors should be.” He considered C++ and Java to have missed this point, focusing on classes and inheritance while neglecting the communication architecture.

The Alto, the GUI, and the Legacy

The Alto, Xerox PARC’s personal workstation designed by Chuck Thacker in 1973, ran Smalltalk, and Kay counted it as an “interim Dynabook”. The Alto’s bitmap display and mouse were part of Thacker’s hardware; the overlapping windows and much of the mouse-driven interface on it came from Kay’s group as part of Smalltalk. In 1977 Kay described the PARC vision for the general public in Scientific American. When Steve Jobs visited PARC in December 1979, the demonstration he saw centred on Smalltalk-76 running on the Alto.

The Macintosh and the GUI-based operating systems after it drew on the work done at PARC. Kay later reflected on this inheritance with mixed feelings: the industry had adopted the visual metaphors (windows, icons, menus) while largely ignoring the deeper ideas about computing as a medium for thought, education, and intellectual amplification.

Atari, Apple, Disney, and Squeak

Kay left PARC in the early 1980s to become chief scientist at Atari (most accounts give 1981; the ACM biography says 1983). After Atari’s collapse he became an Apple Fellow in 1984, working in the Advanced Technology Group on educational computing, including the Vivarium project with Ann Marion at a Los Angeles elementary school. When Apple closed the group in 1997 he moved to Walt Disney Imagineering as a Disney Fellow, and he founded the Viewpoints Research Institute in 2001, devoted to building computing systems for education and active until 2018; from 2002 to 2005 he also worked for Hewlett-Packard. Kay is a serious musician who played jazz guitar in his youth and later keyboards and pipe organ.

Throughout this period, Kay continued developing Smalltalk variants. Squeak (1996), developed with Dan Ingalls and others at Apple then Disney, was a freely available Smalltalk that ran on a portable virtual machine across Mac, Windows, and Unix; its original license was not fully open source, and it was relicensed under MIT and Apache licenses in 2010. Etoys, begun in 1996, was a children’s programming environment built on Squeak. Scratch, the visual programming language for children developed at MIT and now used by millions, grew out of Etoys: Mitchel Resnick brought Etoys developer John Maloney to MIT, and Scratch was first written in Squeak.

Kay received the Turing Award in 2003 for “pioneering many of the ideas at the root of contemporary object-oriented programming languages, leading the team that developed Smalltalk, and for fundamental contributions to personal computing.”

Dead End: Smalltalk as Industry Language

Smalltalk never became an industry mainstream language. It was used in research, in some financial systems (VisualWorks on Wall Street), and in education, but the mass market went to C++, Java, Python, and JavaScript, languages that adopted Smalltalk’s surface features (classes, inheritance) while discarding the message-passing semantics and the live programming environment that Kay considered essential.

Why Smalltalk Lost

Several factors combined: Smalltalk’s image-based persistence model was unfamiliar to developers accustomed to files and compile-link-run cycles; early implementations required specialized hardware; commercial Smalltalk products (ParcPlace’s ObjectWorks and VisualWorks, for example) were expensive; and C++ arrived as a “good enough” object-oriented language for the existing C programmer community without requiring a conceptual leap. Kay’s diagnosis was different: the industry was not interested in the kind of computing he was building toward, only in incremental improvements to what existed. The Dynabook, in his view, has never been built.

The PARC context is covered in The Xerox PARC Revolution. The OOP revolution Smalltalk helped launch is traced in The OOP Revolution.

See also: Adele Goldberg and Smalltalk.


📚 Sources