In our age of hyperspecialization, it's often said that no one can be a Renaissance man. Indeed, Charles P. Thacker, winner of the 2009 ACM A.M. Turing Award, insists he isn't one. But, he notes, "I can lurk at a lot of different levels. I have designed chips, I can design logic, I can design systems, and I can write software up to and including user interfaces."
While "lurking" in these distinct areas for four decades, Thacker has led the design of an astonishing array of technologies, from personal computers to networking technology to tablet PCs. (An interview with Thacker, "From Single Core to Multicore," appears on p. 112.) Today, he is best known for his invention of the Alto, a personal computer, at Xerox Palo Alto Research Center (PARC) in 1970.
"The Alto was the world's first personal computer," says David Patterson, a professor of computer science at the University of California, Berkeley and a computer hardware pioneer himself. "It included everything we think of as being in a PC today: a high-quality graphical user interface, networked computing, laser printing, and the mouse. It, in turn, enabled the invention of software at PARC that shapes our world today: window systems, WYSIWYG editing, drawing and painting, email clients, graphical CAD tools, and clients for file and print servers.
"For those who were not around at the time, it's hard to put into perspective what a breakthrough this was and how much it shaped the computer industry," Patterson adds. "The notion that you would build a powerful computer for just one person was a radical one."
Thacker also co-designed Ethernet local area network technology at PARC in the 1970s and the Firefly multiprocessor workstation and fault-tolerant networks at Digital Equipment Corporation in the 1980s. "These things have a common thread," Thacker says, "which is they are part of a distributed systemthey don't stand in isolation." The Alto was a "nice" single-user machine, he says, but its "real power" was unleashed by networking.
"Complexity is the enemy of computer science, and it behooves us, as designers, to minimize it."
Thacker cites several secrets for his decades of continual success: strive for simplicity, build a kit of reusable tools, insist on sound specifications, think broadly, and make sure your collaborators also succeed.
Of simplicity, he says, "A lot of people think mastering complexity is the goal. But once you have gotten your Master of Complexity merit badge, you don't have to keep winning it. Complexity is the enemy of computer science, and it behooves us, as designers, to minimize it."
Thacker is accomplishing exactly that in his role as a Technical Fellow at Microsoft Research. He's designing simple multicore computers, using single field-programmable gate arrays. The computers are used to conduct research in multicore systems, and are much faster than simulators written in software and much cheaper than building real multicore chips, he says. Their simplicity makes it easy for Microsoft and university researchers to evaluate different system designs and methods of programming systems with multiple processor cores.
Early in his career, Thacker built his own computer-aided design tool, which he has rewritten several times to take advantage of new programming languages. His toolkit also includes reusable algorithms and software modules developed by himself and others.
Thacker says he wrote specifications for the Alto before designing it, a step that is too often ignored today. "What software engineers frequently do is sit down with a list of features to add to a system," he says. "That's quite different from a specification, because the features might be relatively undefined."
Thacker points to the phenomenal success of IBM's System/360 line of mainframes and says, "The best specification ever written, in my view, was the System/360 Principles of Operation, which described the interface between the hardware and software."
As for advice for young computer scientists, Thacker says, "Try to be broad. Learn more math, learn more physics." He modestly calls himself "a jack of all trades and a master of some."
Thacker has succeeded, in part, by working with "really smart guys," says Gordon Bell, a Microsoft principal researcher. Thacker, he says, "basically cordons off a nice-sized, hard-but-doable, and really-useful-to-be-solved problem, and then he works with a small team to carry it out."
Thacker says it's important in cross-specialty projects to motivate teammates. "I've been fairly successful at what I call Tom Sawyering," he says. "It's the idea that if you want to get your fence painted, you trade something of value with the people with whom you work. You have to be committed to their success as well as your own."
©2010 ACM 0001-0782/10/0700 $10.00
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee.
The Digital Library is published by the Association for Computing Machinery. Copyright © 2010 ACM, Inc.
No entries found