4 ms·
Donald Knuth on Donald Knuth: ‘The story you heard is typical of legends that are based on only a small kernel of truth. Here’s what actually happened: John Mc
by chimpanzee 2y ago
Donald Knuth on Donald Knuth:
‘The story you heard is typical of legends that are based on only a small kernel of truth. Here’s what actually happened: John McCarthy decided in 1971 to have a Memorial Day Programming Race. All of the contestants except me worked at his AI Lab up in the hills above Stanford, using the WAITS time-sharing system; I was down on the main campus, where the only computer available to me was a mainframe for which I had to punch cards and submit them for processing in batch mode. I used Wirth’s ALGOL W system (the predecessor of Pascal). My program didn’t work the first time, but fortunately I could use Ed Satterthwaite’s excellent offline debugging system for ALGOL W, so I needed only two runs. Meanwhile, the folks using WAITS couldn’t get enough machine cycles because their machine was so overloaded. (I think that the second-place finisher, using that "modern" approach, came in about an hour after I had submitted the winning entry with old-fangled methods.) It wasn’t a fair contest.
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.”’
https://www.informit.com/articles/article.aspx?p=1193856 https://www.informit.com/articles/article.aspx?p=1193856
(Link shared by sp332 in sibling comment)
- tralarpa 2y ago> "unit tests" appeals to me only rarely Give this man a node.js application with 100000 dependencies where an update from package version 34.2.4 to 34.2.5 breaks everything because the developers decided to change the order of parameters in one function just for fun.
- jimhefferon 2y agoOk, that's fine but that's not what he does.
- ajfriend 2y agoI think that says more about programming today than it does Knuth.
- kragen 2y agohe was dealing with that situation already in the 01970s—he was using an extensible programming language that people kept extending, so the programs he wrote one day would break the next—which is why he designed τεχ in such a way that you can take any τεχ document from 40 years ago and render it in exactly the same way in current τεχ one of the drop-dead showstopper tests in the τεχ release process since that time has been the 'τεχ torture test'; it's an enormous random τεχ document which has to produce byte-identical output on each new version of τεχ for it to be released, unless he can justify each difference. so he's not opposed to automated testing, he just tends to do it at a larger granularity
- hun3 2y ago> node.js application with 100000 dependencies where an update from package version 34.2.4 to 34.2.5 breaks everything because the developers decided to change the order of parameters in one function just for fun. aka "totally unknown environment" which you "need feedback about what works and what doesn’t"
- ptx 2y ago> fortunately I could use Ed Satterthwaite’s excellent offline debugging system for ALGOL W What is he referring to here? What's an "offline" debugger?