Saturday, May 03, 2008

Donald Knuth voiced his thought on programmings

 Just in case the name does not ring a bell to you, Donald is the author of the infamous books The Art of Programming Language.  And some may have known, he also invented the TeX language that powers our beloved, amazing LaTex.
 He was recently interviewed and the rather long script are published here. Credits to the Slashotter who found this.  Here are my personal best bits:

1. He obviously has public another volume of his book, The Art of Programming Language, volume 4 to be more specific. The days being undergraduate suddenly returned. This is admittedly one of the first book that I borrow from the library. Don't remember who told me to pick it up or just because of its slick cover and attracting name. Well, I think it lasted about one week on my book self, and sadly never return.  It probably would not have been the best book I ever read, despite people saying it being the programming bible.  Or maybe I should really give it another go, quite cheap in Amazon.co.uk for a neatly packed box with 3 volumes inside.

2. His opinion on the current trend of parallel programming is somewhat shocking. Put it simply, he doesn't like it very much.  Having been programming sequentially since the dawn of computers, he certainly has a reason. As much as I respected him as being one of the fathers of computer science, his comment that hardware vendor adding multiple cores to processors just because they are running out of idea comes as total surprise to me. Apart from being quite unreasonable on those hardware people,  he somehow underestimates the good that the multi-core infrastructure as well as parallel program could bring to us. Learning parallel, multi-threaded programming is not just about writing games or other personal utilities. It novelty really shows in Grid, Internet-scale distributed system programming.  And it's the strong belief that this is the way we are, and should be moving forward.

3. There is an interesting concept mentioned in the interview, called literate programming. Reading the first few lines in Wikipedia gave me the (wrong) impression that it is just a fancy name for a well-documented style of  programming. Only a bit later did I realize that is not it. Traditional programming is the one that we code, then we put comment next to those codes and hoping other guys would not have to kill himself trying to understand our programs. Literate programming is different fundamentally in the approach of writing program. The whole sheebang is written in human-comprehensible language,  both source code and the documents, so that our grandparents can just read it like a science fiction novel. Then, it will be compiled, results in a binary, runnable source code and a perfect documentation.  Honestly, the only difference I can see here is that programmer are forced to document and code at the same time, as opposed to the way most of us doing it today (code, test, then comments).

The question is why hasn't it taken the world by storm. It seems to be a good idea. On the other hand, it was first proposed in the early 90s, but I'm still struggling to find a working example on the Web.  Enough said! It could probably wake up someday and really takes the world by storm. The only big project using this paradigm up to is Donald's MMIX something. It alone is not enough to convince the rest of the world. 

4. He mentioned some other things as well, but the script is quite long to remember what you just read 5 lines before. 


 

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home