Stanford’s Don Knuth, a pioneering hero of computer programming
In 1962, a young graduate student set about writing the definitive book on computer programming. Five decades and four volumes later, Don Knuth is still writing and the Stanford School of Engineering has its latest “Engineering Hero.”
BY ANDREW MYERS
Some people are born before their time, and some after. Don Knuth was born precisely in his time. In the 1950s, Knuth was a student at Case Institute of Technology in Cleveland, Ohio, (now merged into Case Western Reserve University) and he answered the call for a job programming an IBM Type 650 computer, the first computer he had ever seen.
“Fortuity” hardly does the meeting justice. Knuth was born to program computers. It was as if computers, invented in the preceding decade, had been awaiting him.
Some 50 years later, thanks to his profound facility with algorithms, Knuth – pronounced “ka-NOOTH,” as he notes with emphasis on his Web site – finds himself a reluctant celebrity and being toasted as one of eight in an inaugural class of Stanford Engineering Heroes that includes Bill Hewlett and Dave Packard, Vint Cerf, Ray Dolby, Dean Fred Terman, Charles Litton and William Durand.
“I’m not sure how I feel about this term hero,” Knuth said with characteristic modesty. “I have heroes. I’m just a guy who has a way with computers. I’m not sure what I do rises to that level.”
Yet, rise he does. Knuth is a giant in the field of computer science. His multi-volume, as-yet-unfinished magnum opus The Art of Computer Programming has sold more than a million copies. This, remember, is a tome on computer algorithms, not the latest self-help or diet book.
To put Knuth’s influence in perspective, American Scientist magazine in 1999 prepared a list of the best physical science books of the previous 100 years. There in the list of monographs, beside the likes of Einstein, Pauling, Dirac, Mandelbrot, Russell, von Neumann and Feynman, was Don Knuth. That is pretty heady company. It was an honor even the reticent Knuth had to acknowledge with a “Wow!”
Thus fame has come to Don Knuth. Acolytes recognize him on the street, pointing and whispering his name. They email him questions as if to an oracle, unaware perhaps that Knuth unburdened himself of email in 1990, before most even knew what email was, too busy to answer the near-constant flow. Silvered men, far closer to 70 than 17, corner him, albeit gently. They produce photos of fleeting encounters. They tell him: “You and I once met.” Knuth kindly accedes to their designs on his time, chatting politely as if with an old friend.
The Art of Computer Programming has been a lifelong labor of love for Knuth. He began writing in 1962. The first volume was published in 1968. A second followed a year later, and a third in 1973. He was well into the fourth by 1977 and working on new editions of the first two, when he took a detour. A new programming challenge had occupied his mind.
The first three volumes of The Art of Computer Programming had been typeset in lead, a practice honed over the centuries since Gutenberg. The second edition, however, was typeset using a photo-optical process with substandard fonts and poor spacing. To this son of a typesetter, the results underwhelmed. The book was not beautiful.
Knuth set about fixing the problem. New machines, based on digital principles, were coming on the scene, although they still had not been harnessed to typeset mathematical formulas. His solutions – two programs known as TeX and METAFONT – would redefine the field of digital typography. Knuth planned for a year’s detour; it took a decade. When he finished, he gave the works to the world, free to anyone who cared to use his programs.
He took up The Art of Computer Programming again in the late 1980s; he is now wrapping up volume four. If someone doesn’t beat him to it, he hopes to complete three more.
And what of this remarkable facility with computers? “I guess my mind just works like a computer,” he offered in an interview before the public event marking his Engineering Hero induction.
Knuth champions a programming philosophy known as “literate programming,” encouraging – some say freeing – programmers to write programs by the flow of their thoughts, not according to the rules set down by the machine.
Literate programs can be read and understood by real people. They are written as ordinary human language, almost like an essay in which the traditional macros and source code are inserted within explanations of the author’s logic and intentions. Such programming, according to Knuth, yields better programs by exposing poor logic and design decisions. The programs are their own documentation, flowing naturally out of the process of creation.
And that discussion leads back to his most famous work. When asked to explain the word “art” in the title of his book, the professor grew reflective. It could, after all, have been called simply Computer Programming. “In one way ‘art’ is like ‘artificial,’ meaning that it is not found in nature but made by human beings,” he said. “There also are elements of fine art – of the ineffable – in there, too. The very best computer programs rise to the level of art. They are beautiful.”
This insistence on the unquantifiable in his work has much to do with Knuth’s love of music. His first dream was to be a musician. His royalties from The Art of Computer Programming have afforded him at least one luxury. He maintains a full-scale working pipe organ in his home and plays it regularly. In music, as with mathematics, he sees patterns and order and symmetry. “I’m convinced that Tchaikovsky would have loved combinatorial mathematics if he had lived a century later,” he said.
So, how did this devout Lutheran typesetter’s son from Milwaukee, a graduate of Case and Caltech, end up at Stanford? Knuth gave a nod to the fact that Stanford, even then, was a world leader in computer science under George Forsythe, the man who, Knuth acknowledges, virtually invented the field.
At Stanford, the department was large enough that the young and driven Knuth was freed of academic politics to focus on his work. “I was just one of the boys here,” he said. “I knew I wouldn’t have to fight to keep the department going as with smaller departments at other schools. This is where the best people were and where I could do what I did best.”
And then, of course, there were the students. “The kids were just so darn smart here,” he said. “Many people think that good faculty means good students, but it’s really the other way around.”
Asked if, in his long career, there was anything about the computer age that had surprised him, Knuth responded flatly, “Everything.”
And what if computers had not become what they have to our society and our culture? Where else might his career have led? Knuth paused to turn over the possibilities in his head. After a moment, he said, “I figure I would have been a computer scientist anyway. For me it has always been about solving interesting and challenging questions. I would still have studied algorithms even if fate had turned out differently than it did and if there wasn’t a penny in programming.”
Flowing from the lips of a man who spent a lifetime on a quest to write a solitary work, the same man who embraced a decade-long detour to redefine digital typesetting only to give the work away, it comes as no surprise.
Andrew Myers is associate director of communications for the School of Engineering.