Tuesday, March 6, 2012

A note from Donald Knuth about The Art of Computer Programming

A while back I answered a question on Stack Overflow asking about the relative popularity of The Art of Computer Programming. I replied with something I had heard, that he had commented that they were the "most purchased, least read" computer book in the world.  One Stack Overflow user, ShreevatsaR, had the good sense to call BS on my unsourced attribution.



By way of contrition, I sent the attached note to Knuth (we had met a couple of times previously -- enough to give me some hope of a response) asking him to confirm or deny.  Attached is his response.  We followed up with lunch, and he spoke quite approvingly of Stack Overflow.  I think the Math Stack people at the time were working Tex in the Stack markup language, and they had been in communication with him as well.


 He responded right away:


I have to say that the phrase isn't particular apt, since there obviously exist computer science books less read than TAOCP.  It is true that the *ratio* of pages-thoroughly-read to pages-purchased is pretty low for TAOCP, because different people are interested in different pages.  But still I like to think that the pages read are so great that the buyers aren't unhappy overall. (Or else they just want their friends to think that they have mastered a lot of tough material, which I must confess is not easy for anybody I know including myself.  Einstein said it best: 'Make things as simple as possible but no simpler.'  Some theories are inherently unsimplifiable ... we can even *prove* that!)

My favorite related comment is the enclosed ad that ran about ten years ago, when it was rumored that John Grisham was thinking of responding by writing a seven-volume treatise.
Anyway the bottom line is that I'm enthused about sending a memo to The Internet about this particular phrase.  The web has thousands of tales that aren't true, about virtually everybody in public life.  (Including the story about me and Pixar's CEO.)  I *did* say things like 'Premature optimization is the root of all evil in programming' and 'Beware of bugs in the above code -- I've only proved it correct not actually run it.' 


I especially like that he marked up my original note and fixed a grammatical error!











Thanks again to the most excellent ShreevatsaR who prompted me to do this!