The following file may be copied or distributed freely, as long as it is distributed in its entirety. This file is copyright 1993, Computer Literacy Bookshops, Inc. No use or excerpt may be made of the file without acknowledgement of its source.

Photo by Rachel Unkefer

DONALD KNUTH-Computer Literacy Bookshops Interview

December 7th, 1993

Now Professor Emeritus at Stanford University, Knuth is once again channeling his full energies into writing. Dan Doernberg interviewed him in December 1993 to see what he's been doing recently, and what we have to look forward to.

Knuth: The CWEB system is an add-on to C that makes programming better than any other method known in the world, by far. I simply have to be honest and say that it's the greatest thing that's there. The CWEB System of Structured Documentation is the definitive user manual and complete explanation, more than anybody really needs to know about CWEB.

CLB: You've said that CWEB gives an order of magnitude improvement in programmer productivity--- how so?

Knuth: Well, maybe not an order of magnitude, maybe only a factor of two. People who have used CWEB have noticed that they write better programs, that the programs are more portable, more easily debugged, more easily maintained... and they don't take as long to write.

CLB: Has CWEB been used just at Stanford, or in industry as well?

Knuth: It's being used around the world. We've had WEB, the original version (for Pascal) in a variety of systems, and then more and more people started getting infected by it. TeX was written in WEB. Silvio Levy did the conversion to CWEB in 1987. It was experimental for a long time, and now I'm just saying "The experiment worked!". CWEB is much better than WEB, because C is a much nicer language to work with for system programming and lots of other things. For anybody who really cares about programming, I have no idea why they would not prefer this to any other system.

CLB: Easy to use, runs fast, all that good stuff?

Knuth: Right, and it makes you happy after you finish writing a program!

CLB: Even if you write a bad program?!