Zum Inhalt springen

Butler Lampson and Xerox PARC

Zusammenfassung

Butler Lampson was the most prolific inventor at Xerox PARC — itself the most productive computing research laboratory in history — during the period that produced the personal computer, the graphical user interface, Ethernet, laser printing, and WYSIWYG editing. His contributions span computer architecture, operating systems, programming languages, distributed systems, and security. He received the Turing Award in 1992. His 1972 memo “Why Alto?” articulated the vision of the personal workstation that the next decade of computing worked to realize; his 1983 paper “Hints for Computer System Design” distilled dozens of principles of system design that remain valid decades later.

From Harvard to Berkeley to PARC

Butler Wright Lampson was born on December 23, 1943, in Washington, DC. He studied physics at Harvard, graduating in 1964, and enrolled at Berkeley for graduate work in electrical engineering, earning his PhD in 1967.

At Berkeley, Lampson worked on the SDS 940 time-sharing system — the system that Engelbart’s NLS (“oN-Line System,” home of the Mother of All Demos in 1968) ran on. His doctoral work on time-sharing exposed him to the central problems of operating system design: resource allocation, memory protection, process isolation, and the mechanisms needed to make a computer serve multiple simultaneous users safely.

In 1971, he joined Xerox PARC (Palo Alto Research Center) as a founding member. PARC had been established by Xerox to conduct fundamental research in computing and to help Xerox understand the future of the “office of the future.” The center attracted an extraordinary concentration of talent: Alan Kay, Bob Metcalfe, Chuck Thacker, Gary Starkweather, Charles Simonyi, John Warnock, and dozens of others who would define the next decade of computing.

The Alto: The First Personal Workstation

In 1972 and 1973, Lampson wrote the memo “Why Alto?” and worked with Chuck Thacker to build the Alto — the first computer designed from the ground up as a personal workstation. The Alto was not a personal computer in the commercial sense (it was never sold; Xerox gave them to universities and government agencies and kept them internally); it was a research instrument designed to test ideas about how computing could work differently.

The Alto was the first computer with:

  • A bitmapped display — every pixel individually addressable by software, enabling the GUI
  • A three-button mouse as primary input device
  • Overlapping windows for multiple simultaneous applications
  • A local area network connection (Ethernet, also being developed at PARC)
  • Laser printer connectivity (the first laser printer, also developed at PARC)

The Alto ran Smalltalk (Alan Kay’s language and environment), Bravo (the first WYSIWYG word processor, designed by Lampson and Charles Simonyi), Draw (a vector graphics editor), and Laurel (an email client). It was, by 1974, possible to sit at an Alto and do work that was recognizable as modern computing — email, word processing, graphics — in a form that would not reach the mass market for another decade.

Bravo: The First WYSIWYG Editor

Lampson designed Bravo with Charles Simonyi — the software that implemented the WYSIWYG (What You See Is What You Get) principle for text editing. In previous text editors, what appeared on screen was a coded representation (markup, formatting commands, control characters) that bore only an indirect relationship to the printed output. In Bravo, the screen showed text formatted as it would print: fonts, sizes, bold, italic, columns, and spacing were displayed as they would appear on paper.

The impact of WYSIWYG on document creation is difficult to overstate for anyone who did not use non-WYSIWYG systems. Making formatting decisions required printing to see the result; iteration was expensive and slow. WYSIWYG made formatting decisions immediate and visual. Simonyi took Bravo’s design to Microsoft, where it became the foundation of Microsoft Word.

Distributed Systems and the Two-Phase Commit

PARC’s researchers understood early that networking would connect computers into systems, and that systems of networked computers required new abstractions for reliability. Lampson’s contributions to distributed systems include:

The two-phase commit protocol: A technique for ensuring that a distributed transaction — one involving operations on multiple computers — either completes on all participants or fails on all participants, never leaving the system in a partially-completed inconsistent state. The protocol divides the commit decision into a “prepare” phase (all participants confirm they can commit) and a “commit” phase (all participants execute the commit). Lampson and Howard Sturgis gave one of the earliest descriptions of the technique in their 1976 Xerox PARC report “Crash Recovery in a Distributed Data Storage System” — one of several independent early formulations (alongside Jim Gray’s) that became the foundation of distributed database systems.

Crash recovery and atomic actions: The same line of work tackled how a distributed store can recover a consistent state after components fail, an early treatment of the atomic-action and logging techniques that underpin fault-tolerant systems. (The closely named Lamport clocks and the Byzantine Generals problem are the work of Leslie Lamport, a different researcher — a confusion the similar surnames invite.)

Hints for Computer System Design

In 1983, Lampson published “Hints for Computer System Design” — a paper that distilled dozens of hard-won principles of system design from his experience at PARC and earlier. The paper’s influence has been disproportionate to its length; it has been taught in systems courses for four decades.

Selected hints:

“Do one thing at a time, and do it well.” — Interfaces should have a single clear purpose.

“Don’t generalize.” — Generalizing a design before it is needed adds complexity without benefit. The generalization may not be the one eventually required.

“Make it fast, rather than general or powerful.” — A fast, simple primitive that clients can combine beats a slow, all-encompassing one; leave the higher-level policy to the client.

“Handle normal and worst cases separately.” — The mechanisms appropriate for normal operation may be different from those needed for failure recovery.

“Use a good idea again instead of generalizing it.” — If a technique works well in one context, applying it again in another context is usually better than generalizing it into an abstraction.

The paper’s durability reflects both the quality of the observations and the generality of the problems they address. Systems built in 1983 and systems built in 2023 face the same fundamental tensions between simplicity and generality, between consistency and availability, between mechanism and policy.

Turing Award and Microsoft Research

Lampson received the ACM Turing Award in 1992 for “contributions to the development of distributed, personal computing environments and the technology for their implementation: workstations, networks, operating systems, programming systems, displays, security, and document publishing.”

The breadth of the citation is unusual — most Turing Awards recognize a single contribution or a closely related set. Lampson’s citation listed eight distinct areas, reflecting a career that had produced foundational work across the full width of systems research.

After PARC, Lampson joined DEC (Digital Equipment Corporation) at the Systems Research Center in 1984, and then moved to Microsoft Research in 1995, where he has worked since. His Microsoft Research work has focused on security, formal verification, and the theoretical underpinnings of secure system design.

His career is a counterexample to the research/engineering dichotomy that structures most computing careers. He published foundational theoretical papers and built working systems. The Alto was both a research instrument and a working machine. Bravo was both a design experiment and a program people used to write documents. The two-phase commit was both a formal protocol and an implementation in deployed databases. The combination — rigorous theory implemented in working systems — is the reason the same name appears in the history of computer architecture, programming languages, distributed systems, security, and user interfaces simultaneously.

📚 Sources