Xerox Inc. grew by the commercial success of the Xerox copier machines in the 1960s. In 1970 they founded a new research laboratory. The mission for Xerox Palo Alto Research Center (PARC) was to explore the opportunities of new computer systems for office appliance. With this step Xerox tried to be prepared for the dawning age of personal computing. Alan Kay has formulated this idea as, «The best way to predict the future is to invent it» (e.g. in [Frenkel 94, p. 22]).
One of the things that was developed at Xerox PARC was the Laser Printer with the two components Scanning Laser Output Terminal (SLOT) by Gary Starkweather, and the Research Character Generator (RCG) by Butler Lampson and Ron Rider. SLOT is a technique that uses a laser beam to transfer an image to the xerographic drum, while RCG is a way to create a bitmap of text in computer memory.
The Alto computer (cf. 3.1.5) is the ancestor of modern PCs. It was principally designed by Butler Lampson and Chuck Thacker and had a 72 DPI bit-mapped graphic display and a mouse. Ethernet was invented by Bob Metcalf in cooperation with David Boggs, Chuck Thacker, Butler Lampson and others in 1973. This new technology made it possible for PARC to connect all the Altos to the first local area network (LAN).
All these parts together were the ingredients to EARS, which stands for Ethernet-Alto-RCG-SLOT. When EARS became operational in Autumn 1974, the system started immediately to attract people at Xerox PARC. Everyone wanted to have an Alto of her own. The prototype for an office of the next decade was established by the word processing applications program Bravo by Charles Simonyi, the newly developed paradigm of WYSIWYG, and the possibility of printing documents in high quality to the shared SLOT terminal. About 50 units of the Alto I and more than 1,500 units of the Alto II were produced until 1980 [Friedewald 99, p. 275].
The Alto is the first computer with a size small enough to fit beneath a desktop table (cf. Fig. 3.7a). It is equipped with a mouse, additionally it had a regular keyboard with the option to connect a five-finger chording keyset. The new 600 by 800 pixel bit-mapped graphic screen can display a full-page with 8G by 10H inch at 72 DPI. Network capabilities are also built-in for the new Ethernet technology. The parameters are described in detail by Butler Lampson in the Xerox Inter-Office Memorandum Why Alto in 1972 [Lampson 72]. It is the first time that a research agenda conceives the development of computers to be used by one person each. Time sharing on minicomputers was standard for that time. Personal computing was envisioned by just a few people. Among them are Butler Lampson and Alan Kay.
As soon as the first Altos became operational in 1974 the bootstrapping power unfolds. The network of Alto computers became a perfect testbed for numerous software projects at Xerox PARC. For example Charles Simonyi and Tom Malloy developed Bravo, the first WYSIWYG word processing application. (Simonyi later went on to Microsoft to create Microsoft Word.) Markup and Draw are two application programs to create illustrations and images. Electronic mail could be handled with Laurel, and Neptune was the program to manage files. Documentation on these application programs are part of the Alto User’s Handbook [Taft 79]. The spectrum of capabilities is also described by Thomas Wadlow in The Xerox Alto Computer [Wadlow 81]. He mentions that the Alto computers have also been used for a bunch of games. Trek and Mazewar are among the favorites, because several players with their personal Altos could participate simultaneously on the local network.
Fig. 3.7 (a) The Xerox Alto II personal computer, ca. 1975.
The 72 DPI graphic display of the Alto computer offers an acceptable resolution to bring into use typographic bit-mapped fonts. Together with the Research Character Generator (rcg) and the Scanning Laser Output Terminal (SLOT) is becomes possible to display text with different fonts, spacing and layout on screen much alike the printed output. This relation is the core of “What you see is what you get”, which is abbreviated as the WYSIWYG paradigm.
To Alan Kay the Alto means a step towards his vision of the Dynabook. Consequently he calls the Alto an «Interim Dynabook» (e.g. in Personal Computing [Kay 75, p. 5]). Together with Dan Ingalls he develops Smalltalk in the tradition of the object-oriented programming language SIMULA by Kristen Nygaard and Ole-Johan Dahl, the interactive language Logo by Seymour Papert and the homoiconic language FLEX by Kay himself (cf. 2.1.5 Flex and Smalltalk).
Fig. 3.7 (b) Typical screen of Smalltalk-76. The windows behave like overlapping sheets of paper.
Windows as we know them today are invented for Smalltalk (cf. Fig. 3.7b). In the 1960s Sutherland’s Sketchpad, Engelbart’s NLS and Kay’s Flex Machine could map rectangular regions of a larger virtual screen to non-overlapping areas of the display. But it is up to Smalltalk to draw a frame around the windows and to actually overlap them like real sheets of paper. A click with the mouse to a visible part of an overlapped window is sufficient to move it to front. Once the window is front and activated, it can be dragged with the mouse to any position on screen. The size can also be changed with the mouse and scrollbars allow to shift the visible portion of the view.
Overlapping windows have a couple of positive qualities for graphical user interfaces. First of all they generate a familiar environment in that they build on the metaphor of overlapping sheets of paper. Secondly, swapping the front window eliminates a mode from the interaction with computers. The user does not have to quit one application program to open another for a different document or piece of information anymore. A simple click to a partly covered window activates the document and the associated program. This interaction mode is called modeless because the mode switch between different programs is transparent to the user. A third advantage of overlapping windows is the subjective gain in real screen estate. For example the content of the windows in Fig. 3.7b would not fit on the same screen without overlapping facilities. Even though they are not completely visible they are accessible at any time with a simple click. An acceptable trade-off for more flexibility in window space handling, and a more economical use of screen space.
The introduction of overlapping windows solves the dilemma of preemption between application programs. Larry Tesler goes further and tracks down the mode problem for the domain of text editing. Modes like INSERT, REPLACE, DELETE, and SEARCH had to be specified explicitly before these operations could be performed. Consider for instance NLS. The command letter ‘D’ puts the system into the mode of deleting. The next letter and the following click define the operand for the command; e.g. ‘DW’ and a click deletes a word, while the same click deletes the line of text if the given command was ‘DL’ [Friedewald 99, p. 415].
Tesler’s solution holds until today. He introduces the selection of text and reverses the order of command and operand. The border case of a zero-length selection defines a new kind of cursor next to the mouse cursor, namely the text cursor. The right field of Fig. 3.8 shows the text cursor between the ‘d’ and the comma.
The mouse is used to select a piece of text in the Smalltalk environment. Typing always replaces the selection. «Thus, the usual insert, append, and replace modes are folded into one mode – replace mode – and one mode is no mode at all.» [Tesler 81, p. 104]
Fig. 3.8 The mouse is used to select a piece of text in the Smalltalk environment. Typing always replaces the selection. «Thus, the usual insert, append, and replace modes are folded into one mode – replace mode – and one mode is no mode at all.» [Tesler 81, p. 104]
Text is selected with the mouse. A single click positions the text cursor between two characters. A double click selects a word, and a click-drag gesture selects a passage. Commands like CUT, COPY and PASTE can be chosen from a pop-up menu.
Overlapping windows, modeless text manipulation and the WYSIWYG paradigm form the user illusion of directly interacting with real objects.
Alto/Smalltalk videos via Software Pioneers: Contributions to Software Engineering: