Previous | Table of Contents | Next |
The history of the design of Smalltalk is also the history of the invention of personal workstations at Xerox PARC.
Kay designed the FLEX machine while he was a graduate student at the University of Utah. He then worked at Stanford, where, in anticipation of joining Xerox PARC, he refined his ideas into a machine called the KiddiKomp, running a simulation language based on the language LOGO (Papert, 1980). This machine in turn evolved into the design of the miniCOM, complete with a bitmapped display, a pointing device, external storage, and the first language that was formally called Smalltalk. Kays own history of this period contains interesting sketches of these early Dynabook designs (Kay, 1996).
A favorite folk tale in PARC history retells the birth of the Alto, PARCs first personal workstation. As Smalltalk was to be the basis for programming on a Dynabook, the test of its usefulness relied on its availability on a Dynabook, or at least on the Dynabooks closest approximation given known packaging and display technologies. At the outset of its creation, PARC consisted of several research laboratories, two of which focused on computing science. Kays Learning Research Group (LRG) was in the System Science Laboratory (SSL), whereas most of the hardware designers resided in the Computer Science Laboratory (CSL). The decision to create two laboratories was made on the conjecture that two labs could muster more resources from Xerox than just one. The decision was made without the wisdom of hindsight that two labs would have to fight a zero-sum game for the same resources, should funding become tight (as it did around 1976).
In 1972 at Xerox PARC, there was not general agreement that everyone needed a personal workstation. Much of the successful computing science work had been carried out on time-sharing systems, systems whose users appeared satisfied to move textual information over telephone lines at 300 baud. But the Dynabook vision required that each individual have more than an illusion of access to computing capability. Because each Dynabook user was to be able to draw in full color, create and view Disney-quality animations, orchestrate and play back symphonies, and so on, individual ownership of computing power was essential. Kays first request to get resources to build a few miniCOMs was turned down by the then CSL manager. Disappointed, LRG created demo simulations of painting, animation, gesture recognition, text and font editing, and music capture on a Data General NOVA with an experimental character generator.
Fortunately, as the folklore goes, the head of CSL was assigned to a three-month corporate task force and was therefore not present to stop the transfer of LRG funds to CSL to design and build the first Alto workstations (Thacker 1988). The full design was completed in one month and was well on its way to implementation by the time the CSL manager returned. By 1973 LRG had in its possession three Altos and was able to simulate the Dynabook idea. The (606×808) bitmapped display screen of the Alto was, in fact, supposed to be a transient phenomenon, used to simulate the interaction with flat-paneled display technology.
The Smalltalk implemented on the first Altos was Smalltalk-72. The first implementation experiment was coded in BASIC by Dan Ingalls on the NOVA. Ingallss goal was to check out the semantics of the proposed language. Ingalls then created a BCPL version for the NOVA, which he bootstrapped to the Alto in the spring of 1973. It was an interpreter with a simple reference-counting scheme for automatically managing the allocation and deallocation of objects in main memory. The kernel interpreter was simple because most useful data structures, control, and literals were realized as instances of classes with escapes to lower-level code for those object messages needing special primitive handling. Smalltalk-72 was available for use by both PARC researchers and invited visitors by the summer of 1973.4 The display screen for the first Smalltalk-72 system was divided into two parts, called windows. Text editing of program code was done in the lower scrollable dialog window, and the graphical results were displayed in the upper window. As Smalltalk-72 evolved, LRG experimented with the first user interface based on overlapping windows.
4I joined LRG at this time, in June 1973, having completed my Ph.D. from the University of Chicago and research program at the Institute for Mathematical Studies in the Social Sciences at Stanford University. My special interest was educational technology, teaching about and with computers.
Previous | Table of Contents | Next |