Don Knuth and the Art of Computer Programming: The Interview
simple-talk.com
simple-talk.com
I guess I do tend to use systems in unexpected ways, and I get some satisfaction
when this reveals a flaw. For example, I remember having fun while visiting my
sister and playing with a `shoot-em-up' game that my nephew showed me.
Since I'm kind of a pacifist, I tried shooting bullets at the wall, instead of
trying to kill the hidden attackers. Sure enough, I could spell my name on that
wall, by making bullet holes in an appropriate pattern. But later when I came back
to that same position, after wandering around further in the game, my name was gone!
I think that was a bug in the software.
I love this. Especially the fact that he wrote was probably doing the only thing he wanted to do in the game, and was foiled by the fact that the game programmers didn't dedicate extra memory to saving environmental damage throughout a level.Modern games on modern systems are getting better, but there's always a limit as to how much data will fit into RAM during a given scenario/level while still keeping everything else running smoothly.
What I was trying to do was use the frozen in space objects to sort of paint in mid-air the area I was in. Unfortunately after about a 100 or so, the game removed the oldest dropped object with each new one placed.
a < b > c;
(from Dr. Dobbs, many years ago)
Can you determine the function of that statement without knowing the types of the variables? No? That's because there's a parse problem in C++. If they had only used, say, [< and >] rather than < and > for template declaration, it could have parsed cleanly. Overloading operators for unrelated functionality is a dangerous and usually unnecessary practice.
The irony is that computer science nearly lost Knuth to its ranks because of his love of music (his house is built around a two-storey pipe organ that he designed himself) and says he intends to return to it once he has completed the expected seven volumes of ‘The Art of Computer Science’.
7 Volumes though! I've got the boxed four set, at the rate with which I'm progressing I'm sure he'll have the other three finished, lol.
Aside from that, his writing style is actually conversational and clear to follow; he includes numerous exercises and strongly recommends the reader to do them. He also clearly marks which exercises are appropriate for more Mathematically enclined readers vs. Programmers wanting to level up.
Don't get me wrong, it's thick material, but his exposition of it is clearly well thought out and there's an easy-to-follow path between the topics and ideas he covers. Unlike most encyclopedias which are generally a repository of knowledge with loose links between topics and concepts.
It is not an encyclopedia per se, and yes, it has substantial narrative, but it is as other sources mention - e.g. in CLRS it is explicitly referenced as "encyclopedic work".
[1] http://www.webofstories.com/play/donald.knuth/1 [2] https://news.ycombinator.com/item?id=3389980 [3] http://archive.computerhistory.org/resources/text/Oral_Histo...
I think existing incentives are working fine, except of
course that I wish more people would discover the
advantages of literate programming.
The problem, is, in my opinion is that programmer believes in the beauty of code itself, and literate didn't allow to write beautiful code easily.
It helps to write beautiful documentation.
Maybe a tool allowing literate and inverse literate programming to propagate modifications in code or in documentation on both directions may allow a better adoption?TAOCP:Computer Science::Gray's Anatomy:Medicine
They weren't saved long enough to be enjoyable to Don.
(a) Freedom AND order. (b) I guess I prefer maybe three ways, having different characteristics, together with the knowledge of how to convert each of them into the other two.