Butler Lampson

Sketched portrait of computer scientist Butler Lampson, xerox PARC pioneer and architect of early personal workstation systems.

Butler Lampson has a distinguished career with many contributions to the field of computer science and is highly regarded as a systems designer. Among many honors and awards, he won a 1992 Turing Award (which is like the Nobel Prize for computer scientists), for his contributions to the development of distributed computer systems. As a Microsoft Technical Fellow in the Research Group, he continues to offer papers and insights to the field. His interview was like having a one on one meeting with a professor explaining the world and how to best go about systems design and software development.

Excerpts from the 1985 Interview in the Book

I met Butler Lampson in Palo Alto at the offices of Digital Equipment Corporation where he works one week out of a six-week cycle; the other five weeks he works in Philadelphia. He is what he calls a “tele-commuter” doing much of his work via telecommunication lines. Unlike so many others in this fast-paced, quickly growing industry, Butler Lampson doesn’t exhibit many entrepreneurial interests. His focus is singular: He is concerned with the successful design of a computer system, whether it be hardware, software applications, languages, or networks. Lampson writes very little source code today; he is a system designer, the person with the vision and expertise who lays the groundwork for a complex system. And he is undoubtedly one of the best.
INTERVIEWER: Do you consider computer science to be on the same level as physics and mathematics?

LAMPSON: I used to think that undergraduate computer-science education was bad, and that it should be outlawed. Recently I realized that position isn’t reasonable. An undergraduate degree in computer science is a perfectly respectable professional degree, just like electrical engineering or business administration. But I do think it’s a serious mistake to take an undergraduate degree in computer science if you intend to study it in graduate school…To hell with computer literacy. It’s absolutely ridiculous. Study mathematics. Learn to think. Read. Write.

Excerpt 1:

INTERVIEWER: Do you feel that AI research has a practical limit?

LAMPSON: I think it is unlikely that expert systems are going to work. In the early seventies, it was clear that the projects we were involved in then could be made to work. At least, I couldn’t see any fundamental reasons why they should not work, whereas now I can see a lot of fundamental reasons why artificial-intelligence systems are unlikely to work. It seems that some people have taken a very small number of experiments, which often have very ambiguous outcomes, and have made generalizations about those results in a totally crazy way.

INTERVIEWER: Why do you think people are so fascinated by the idea of artificial intelligence?

LAMPSON: Well, I’m not sure. Part of it is the basic computer fallacy that states the computer is a universal engine that can do anything. If there is no obvious way to show that something is impossible, then some people assume it must be possible. A lot of people don’t understand what the consequences of complexity are, and without that understanding they are likely to get burned. If they are not willing to take the word of someone who has gotten burned, then the only way they are going to find out is to try it and get burned themselves. Very few of the people who are excited about artificial intelligence have tried it.

I see really extreme versions of this. For instance, the Defense Advanced Research Projects Agency is funding a program that is supposed to use all of these wonderful expert systems and AI techniques, as well as parallel computing, to produce truly wonderful military devices, such as robot tanks. They published a ten-year plan that included a foldout showing lines of development and milestones when breakthroughs would be made. It’s all nonsense because no one knows how to do these things. Some of the problems may be solved within the next ten years—but to have a schedule! The world doesn’t work that way. If you don’t know the answers to the problems, you can’t schedule when you’re going to finish the project.

INTERVIEWER: You seem to scorn complexity. When you design a system, do you strive for simplicity?

LAMPSON: Right. Everything should be made as simple as possible. But to do that you have to master complexity.

INTERVIEWER: In practical terms, how do you achieve that?

LAMPSON: There are some basic techniques to control complexity. Fundamentally, I divide and conquer, break things down, and try to write reasonably precise descriptions of what each piece is supposed to do. That becomes a sketch of how to proceed. When you can’t figure out how to write a spec, it’s because you don’t understand what’s going on. Then you have two choices: Either back off to some other problem you do understand, or think harder.

Also, the description of the system shouldn’t be too big. You may have to think about a big system in smaller pieces. It’s somewhat like solving problems in mathematics: You can write books that are full of useful hints, but you can’t give an algorithm…

Excerpt 2:

Butler Lampson Turing Award winner CPU architecture sketch from Programmers at Work showing a fast CPU design with two-level cache.
Butler Lampson Turing Award winner CPU architecture sketch from Programmers at Work showing a fast CPU design with two-level cache.

Sketch by Butler Lampson of a design for a fast CPU with a two-level cache. See the Appendix (pages 374–383) for additional Lampson specifications and program samples.