LWN.net Logo

Interview with Donald Knuth (InformIT)

Interview with Donald Knuth (InformIT)

Posted Apr 27, 2008 16:55 UTC (Sun) by jordanb (subscriber, #45668)
Parent article: Interview with Donald Knuth (InformIT)

I'm generally a fan of document-driven and document-centered development (and agree with
everything he says about XP). I've never managed to get into WEB though. The main problem is
that the source files all look like a mess. It's as if the documentation and the source had a
really messy head-on collision. I can't imagine them being anything other than a maintenance
nightmare. 

Of course, what he says about not seeing the point of test suites suggests that he really
doesn't spend much time dealing with maintainability issues, and sees development as a very
personal thing, which probably explains the weird restrictions he has on TeX.


(Log in to post comments)

Interview with Donald Knuth (InformIT)

Posted Apr 27, 2008 18:02 UTC (Sun) by vonbrand (subscriber, #4458) [Link]

The same ideas in web are also in "document in the source" systems like doxygen.

Sure, Knuth is of the "write it all by myself" people, and so he has no use for "resusable code". It is somewhat surprising that he thinks so highly of open source in this light. But academia is open source in a way (publish to get your ideas reviewed/corrected/built upon by others), so...

Interview with Donald Knuth (InformIT)

Posted Apr 28, 2008 8:07 UTC (Mon) by rsidd (subscriber, #2582) [Link]

Sure, Knuth is of the "write it all by myself" people, and so he has no use for "resusable code". It is somewhat surprising that he thinks so highly of open source in this light.

If you read the fine article, he says he prefers "re-editable code" to "reusable code". From that point of view, open source makes perfect sense.

If all you want is reusable code, you can link against a proprietary library, pay whatever licence fees are required, swallow their bugs. You don't need open source.

Interview with Donald Knuth (InformIT)

Posted Apr 28, 2008 17:31 UTC (Mon) by felixfix (subscriber, #242) [Link]

There is a difference between reuseable and editable.  Reuseable code has to be so thoroughly
documented that you never need to look inside it to know exactly what happens under corner
cases.  I have run into this problem so often that I feel, like Knuth, that editable source is
better.  Perl's LWP is a great example.  I love it, it usually does just what I want, but then
there are conditions where I don't know what it does, and I have to inspect the source or poke
around in the debugger to find out exactly what is going on.  If it were closed, I would be
stuck.  If it were proprietary but with source available, like Microsoft's useless "shared
source", I would still be stuck if it didn't do the right thing or had a bug.

Interview with Donald Knuth (InformIT)

Posted May 6, 2008 1:23 UTC (Tue) by jschrod (subscriber, #1646) [Link]

If you read the interview again, you might note that he doesn't write that test suites are bad
in general -- he writes that *his* development style doesn't fit with unit tests a la JUnit or
so.

Please remember: TeX was probably the very first open source program that ever came with a
test suite, the trip test, and where every port must pass this torture test, otherwise it
can't be named TeX. And the trip test was already there in 1978. I'd like if half of the other
open source software would have test suites that are 10% as good as those of TeX and friends.

And I don't know what you mean with "weird restrictions". If you mean the overall usage of
global variables, reluctance to use structures, and other stuff that's not up-to-par with our
current software methods -- that's caused by the restrictions of Pascal compilers at the time
of TeX's creation. Back in 1981/1982, when we did our first TeX port, we actually had to
change the Pascal compiler to be able to get TeX running.

Interview with Donald Knuth (InformIT)

Posted May 6, 2008 6:25 UTC (Tue) by nix (subscriber, #2304) [Link]

A testsuite, let us not forget, whose values were determined the way 
values in testsuites *should* be determined, by working out in some other 
way (in this case by hand) what the values shold be and plonking them in.

I have seen all too many testsuites in which this is not the case. (Oddly 
enough, these tests rarely fail, unless run in a universe in which 1 != 
1.)

Copyright © 2012, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds