Born in 1938, American computing pioneer Donald Knuth is known for his greatly influential multi-volume work, 'The Art of Computer Programming', his novel 'Surreal Numbers', his invention of TeX and METAFONT electronic publishing tools and his quirky sense of humor.
So then I had 26 letters, but I had to go on and figure out how to typeset, how… how to put them on the page next. So I stopped working on fonts and I… and I started to try to figure out well, how am I now going to specify my book? This was what, you know, I… this was very early days, now there's all kinds of software that does this, but nobody had it at… in those… those times, except some… there were some good programs written… written for the newspaper industry, especially in fact for US News & World Report and for Newsday. And that… and so the people who had… had written those programs were students of… of friends of mine, and… and so I went and talked to them. I looked at the… the programs that were available. I… I looked at the programs that had been used to typeset the Volume Two that I'd thrown away. That typesetting was done in… in Belfast by… by a company that was top of the line as far as commercial mathematics setting was concerned, and they… and they, they knew their business but they just didn't have good… good fonts to use for the output of their system. So I… so I looked at that system, and I looked at a system that was developed at Bell Laboratories and, you know, every… every other system for… for this.
And I… then I sat down and I took 10 sample pages of my book and I said, ‘You know, as soon as I get those… these pages working then that'll handle all of the formats that I’ll… that I need, you know’. In fact, these were just fragments of pages, but I have… have lots of different kinds of things going on in my book, from ordinary… ordinary copy to… to math formulas and algorithms, computer programs, table… tables and figures and all these different typo… typographic features. I… but it… it boiled down to four pages of… of stuff, with changing a lot in it. And I… and I sat down and I said, ‘Okay, here's how I would like to specify those four pages of… of sample text for a typesetting system that would work’. And I stayed up all night one night typing this… this trial language for… for capturing my book, and… and then… then the only problem was to imagine a computer program that would go from this input to zeroes and ones on the page. That would… that would do it. And so… then I… I stayed up another night writing up the rules of this language and showed them to some friends a couple of weeks later… revised those rules.
Then it was the middle of July and time for me to go to China. I had… with some other people, my… my wife and kids and… and three other people, we took a trip to China. This was kind of early days for China. It was… Mao had just… had died less than a year before, but we were invited to spend 3 weeks at… in various parts of… of China and see the country, and… and it was kind of a… kind of a unique opportunity, and also for… for my kids, they were some of the first… first children from the USA to be allowed into the… into mainland China at the time. And so we had… so… so that was my summer plans. So… so I had two student assistants that summer, and I presented them with my specifications for… for my typesetting language, which at the time I called TeX. Now we pronounce it Tech, but you know, first it was called TeX, you know, and I… and I assumed that when I got back from China they would have the computer program working. Then I, you know, then I can go on and do the next part of my… of my work.
Well, I had a great time in China and I came back, but to my surprise, they hadn't even gotten one page out yet – one test page done – and, well, another student had made some progress on the… on the question of hyphenating words, but I was a little bit surprised that… that it turned out to be so difficult, when I thought my… my specifications were so clear. Well, this was my introduction to the… the reason why so many software projects fail, because people think that specifications are clear, but… but really, as soon as you try to… to translate some specifications that seem clear to a human being and to… and explain those to a computer, you know, there's all kinds of questions that come up that you never anticipated. So, here… here the students are, and every time they… they come to a… to a new part of my specifications, a question arises that… and… and they can't… can’t ask me because I'm… I'm off in China. So then they have to meet with each other, and say, ‘What did… what did he mean by that? You know, ‘What did he think?’ And so on, a get-together. And… and so they solved that, and they… they… they'd work for another half an hour and they'd come up with another… another such problem, you know, over and over again. So… so it was… it was miraculous they got done as much as they did, that, you know, while I was gone. Anyway, they did show me the program that they wrote and that… that gave me an idea for architecture or structure that I… that I could use when I had to write… write the real program myself later. So then they go back to school, and I come back and I start… and I start programming in earnest.
Title: Figuring out how to typeset and the problem with specifications
Trained as a journalist, Dikran Karagueuzian is the
director of CSLI Publications, publisher of seven
books by Donald Knuth. He has known Knuth since the
late seventies when Knuth was developing TeX and
Metafont, the typesetting and type designing computer programs, respectively.
US News & World Report, Newsday, Belfast, Bell Laboratories, China, TeX, Mao Zedong