

Interview with Donald Knuth - johnm
http://www.informit.com/articles/article.aspx?p=1193856&rll=1

======
plinkplonk
I found this part fascinating.

"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."

I am a little skeptical of literate programming (especially how it would would
work on multi person teams, a circumstance Knuth doesn't face) but when
someone of the stature of Knuth is so emphatic, common sense dictates a closer
look.

The LCC compiler (Fraser and Hanson) seems to have been developed using
literate programming and it is a beautiful piece of code.

I was wondering -- has anyone on news.yc attempted literate programming?

~~~
michael_dorfman
Why are you skeptical of literate programming with multi-person teams? It
seems to me that the value of literate programming would increase
exponentially in relation to the number of people reading the code.

~~~
plinkplonk
"Why are you skeptical of literate programming with multi-person teams? "

I guess it is because I am not convinced about many people working on a piece
of _prose_ (vs code). As I understand literate programming, the "text" evolves
parallelly with the code.

Having said that, I'd be interested in knowing if anyone managed a successful
lp project with more than one person (or a couple of persons).

~~~
aflag
I've done some literate Haskell programming on stuff of my own. I never used
it while working with other people, though. I understand that darcs
(<http://darcs.net>) uses a fair amount of literate programming, perhaps you'd
like to check it out.

------
DaniFong
'With the caveat that there’s no reason anybody should care about the opinions
of a computer scientist/mathematician like me regarding software development,
let me just say that almost everything I’ve ever heard associated with the
term "extreme programming" sounds like exactly the wrong way to go...with one
exception. The exception is the idea of working in teams and reading each
other’s code. That idea is crucial, and it might even mask out all the
terrible aspects of extreme programming that alarm me.'

------
jsomers
Knuth is the Warren Buffett of computers: phenomenally successful because he's
a master of fundamentals, with an uncommon share of common sense. Also, a
great writer (of books _and_ software).

~~~
noonespecial
He also has an uncommon humility considering his achievements that really
commands attention when he speaks or writes. You just don't ever get the
"hidden agenda" vibe from Donald. Its very refreshing.

------
gruseom
Wow: "During the past 50 years, I’ve written well over a thousand programs,
many of which have substantial size. I can’t think of even five of those
programs that would have been enhanced noticeably by parallelism or
multithreading."

~~~
michaelneale
That is a pretty amazing point - I am betting most people will ignore that.

Whilst current CPU trends are to "wider" architectures - how much of that is
lack of innovation in the CPU design area rather then some major actual shift
- ie will we see new CPU innovation in the near future where explicit
parallelism is less of an issue?

Having said that, parallel friendly functional languages like erlang and
haskell have so many other advantages, maybe its worth shifting in that
direction anyway.

------
eelco
"Yet I think that a few programs, such as Adobe Photoshop, will always be
superior to competitors like the Gimp—for some reason, I really don’t know
why!"

See, that's what a name like The Gimp does. Even smart people will believe
your product is inferior - backed-up by no real argument what so ever ;)

~~~
PieSquared
Although maybe he's wrong about Photoshop vs Gimp, I still think he is correct
in saying that some programs just can't be done in an open source manner. A
better example might be something like Second Life - there is no way that
could have evolved the way most open source software evolves now.

Some things just require immense dedication and concentration from a large
amount of people from the very start - and in an open source project, you
can't get that until you have a sizable project already done.

~~~
euccastro
I don't know what part or aspect of SL you think couldn't have been done Open
Source, but there was this company called Nevrax who developed and launched
this MMO called Ryzom. It was not a commercial success, but it got done, and
it was open sourced all along, which AFAIK did't hurt them much.

Edit: <http://www.fsf.org/news/free-ryzom> (where it also says Linden Labs has
GPLed the client code for Second Life, back in 2007.)

------
systems
" ... that might well be because I’m a very strange person"

I completely agree he does sound like a very strange person, some of his
opinions are not what you would expect from a person in stature, to the degree
that made me doubt the integrity of this interview

If people didnt know he was Don Knuth he would have been easily acused of
being a troll

He also sound like a very opinionated and passionate person

~~~
michael_dorfman
Which of his opinions are not what you would expect from a person of his
stature?

~~~
systems
[http://tech.slashdot.org/article.pl?no_d2=1&sid=08/04/26...](http://tech.slashdot.org/article.pl?no_d2=1&sid=08/04/26/1627248)

------
jsrn
'I have special [...] Emacs keyboard shortcuts that make bookwriting a little
bit like playing an organ.'

------
ashu
_I do grant that web browsing probably will get better with multicores. I’ve
been talking about my technical work, however, not recreation._

What??? Web browsing is only for recreation? Perhaps, he meant that it is
recreation _for him_...

------
binglo
From the article: "I also must confess to a strong bias against the fashion
for reusable code. ... you’ll never convince me that reusable code isn’t
mostly a menace."

???

~~~
jrockway
Knuth is solving different problems than Joe Average programmer.

I don't think anyone will argue against reusing existing databases, web
frameworks, etc. when you are writing a web app. But if you are, say, writing
a new typesetting system... who cares about reusability? You just need to make
it work. The components aren't typically used elsewhere in that case, so your
priority should be writing a good typesetting system, not writing reusable
parts.

I think that's what he's saying, anyway...

