Thursday, June 21, 2012
Listening to Donald Knuth talking
Two day ago, I attended to a seminar by Donald Knuth. A mythical figure who wrote some of the best -ever books in Science (The Art of Scientific Computing), implemented TeX (which I use for scientific writing and for anything that contains formulas: well I use LaTeX after having use TeX between '88 and '89), METAFONT, promotes literate programming, and claims that program should be read as literature (I kind of agree with it). He also wrote some other book that I will probably buy sometimes in the future, like Concrete Mathematics [pdf].
The occasion was SAT'12, i.e. a conference on satisfiability (look at wikipedia also here: http://en.wikipedia.org/wiki/Boolean_satisfiability_problem), and the first part was on his interpretation of the subject.
I was not able, obviously I would say, to understand to core arguments DK presented, but at the same time, I could observe the structure and the organization of his talk.
First, for good or bad, he used everywhere a self-made notation, and self-developed tools. For good because things appeared magic, for bad because introducing extra efforts for understanding the meaning of what he was saying.
Second, he did not paid any attention to do "a nice presentation", in the sense of using the "right way" presentations' medium: his slides were full of words and numbers. No drawings and schemes to facilitate any understanding. No simplifications to convey the few concept that our mind can retain. However, like a mantra, we were eventually captured in the rite.
Differently from me, which I usually think in geometrical or analytical terms, his speech (and his mind ?) seems to stick with discrete numbers. Sequences of number and bytes. Like Pytagoras would have made, I believe.
One of the words that he repeated more was probably debug(ging). In fact any passage and many numbers he showed were finalized to control how the programs work (for obtaining the desired results, but also, to minimize computer memory use, i.e. work better). He relativized the meaning of program efficiency which he declined in the sense of number of memory accesses, and not the time in which a code is executed, that could be affected by the use of cache memory, parallelization, compilers, and many other accidents.
After a brief interval, he answered to more general questions. This would have been mine, if I would have dared to make it: what do you think of object oriented program and techniques ?
However, he, in answering one of the questions, said that he prefer C-- over C++ that he was never able to learn proficiently. So, this confirmed my impression by reading his works. Not only his mind is "numeric", in the sense of discrete numbers, but also "procedural".
But obviously, as the third principle of Psycohistory is not true ;-),
(There is a third underlying axiom of Psychohistory, which is trivial and thus not stated by Hary Seldon in his Plan: that Human Beings are the only sentient intelligence in the Galaxy.)
there could be something else out there. Anyway it was wonderful.