2020-01-17 05:17:06
http://www.informit.com/articles/article.aspx?p=1193856
An old interview with Don Knuth (from 2008). It has lots of interesting parts. Some of which show Knuth’s weird sense of humour. Some are actual programming wisdom. Albeit may be useful only to a person who managed to write 1-megabyte program in one year with only 7 bugs found during next 40 years of its active use [1]. Some quotes which I found interesting (and partially agreeing to):
> I also must confess to a strong bias against the fashion for reusable code. To me, "re-editable code" is much, much better than an untouchable black box or toolkit. I could go on and on about this. If you’re totally convinced that reusable code is wonderful, I probably won’t be able to sway you anyway, but you’ll never convince me that reusable code isn’t mostly a menace.
> As to your real question, the idea of immediate compilation and "unit tests" appeals to me only rarely, when I’m feeling my way in a totally unknown environment and need feedback about what works and what doesn’t. Otherwise, lots of time is wasted on activities that I simply never need to perform or even think about. Nothing needs to be "mocked up."
[1]. This is obviously (second version of) TeX. I extrapolated number of bugs found based on the current bounty per found bug - $327.68. It started at $2.56 and doubled with each found bug. Thus only 7 bugs were found so far.
Other interesting well-known facts about TeX:
* TeX source is a single file written using literate programming style (https://en.wikipedia.org/wiki/Literate_programming for uninitiated). It means that it can either be compiled into a running program or be formatted as a book. Book was actually published in 1986. Someone has made a pdf from the source - http://brokestream.com/tex.pdf. Here’s the official source: http://mirror.ox.ac.uk/sites/ctan.org/systems/knuth/dist/tex/tex.web that this book is made from.
* TeX versioning started at 0 and slowly converges to pi with each release. Current version is 3.14159265.
* TeX is written in WEB. Which is a literate programming for weird Pascal variant from the early 80ies. Most TeX forks (including most widely used pdflatex) still use this technology. Because that Pascal variant doesn’t compile on modern systems a whole transpiler called “web2c” was made to convert that version of Pascal into C which can be compiled on modern systems.
* Some brave souls are trying to move source of truth from literate WEB program into regular C. I wish them luck. To me their reasons make perfect sense - https://www.tug.org/TUGboat/tb30-3/tb96hoekwater-pascal.pdf
670 viewsedited 02:17