[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Axiom-developer] Knuth on literate programming

From: root
Subject: [Axiom-developer] Knuth on literate programming
Date: Fri, 25 Apr 2008 23:02:01 -0400

Don Knuth made these remarks in an interview with Andrew Binstock

Andrew: One of the few projects of yours that hasn’t been embraced by
a widespread community is literate programming. What are your thoughts
about why literate programming didn’t catch on? And is there anything
you’d have done differently in retrospect regarding literate

Donald: Literate programming is a very personal thing. I think it’s
terrific, but that might well be because I’m a very strange person. It
has tens of thousands of fans, but not millions.

In my experience, software created with literate programming has
turned out to be significantly better than software developed in more
traditional ways. Yet ordinary software is usually okay--I’d give it
a grade of C (or maybe C++), but not F; hence, the traditional methods
stay with us. Since they’re understood by a vast community of
programmers, most people have no big incentive to change, just as I’m
not motivated to learn Esperanto even though it might be preferable to
English and German and French and Russian (if everybody switched).

Jon Bentley probably hit the nail on the head when he once was asked
why literate programming hasn’t taken the whole world by storm. He
observed that a small percentage of the world’s population is good at
programming, and a small percentage is good at writing; apparently I
am asking everybody to be in both subsets.

Yet to me, literate programming is certainly the most important thing
that came out of the TeX project. Not only has it enabled me to write
and maintain programs faster and more reliably than ever before, and
been one of my greatest sources of joy since the 1980s; it has
actually been indispensable at times. Some of my major programs, such
as the MMIX meta-simulator, could not have been written with any other
methodology that I’ve ever heard of. The complexity was simply too
daunting for my limited brain to handle; without literate programming,
the whole enterprise would have flopped miserably.

If people do discover nice ways to use the newfangled multithreaded
machines, I would expect the discovery to come from people who
routinely use literate programming. Literate programming is what you
need to rise above the ordinary level of achievement. But I don’t
believe in forcing ideas on anybody. If literate programming isn’t
your style, please forget it and do what you like. If nobody likes it
but me, let it die.

On a positive note, I’ve been pleased to discover that the conventions
of CWEB are already standard equipment within preinstalled software
such as Makefiles, when I get off-the-shelf Linux these days.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]