Was Knuth Really Framed?
I&#x27;ll avoid repeating my comments from the previous thread (<a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=22406070" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=22406070</a>) and say just the ones that I think didn&#x27;t get enough attention:<p>1. I can&#x27;t speak for Hillel Wayne who used the word &quot;framed&quot;, but I didn&#x27;t understand his newsletter post as <i>Bentley</i> having &quot;framed&quot; Knuth -- I understood his post as pointing out that in the popular imagination&#x2F;folklore, the story had mutated over the course of years from the original setting (a program that Knuth was asked to write in WEB specifically as that was the point, and a review of that program by McIlroy evangelizing the then little-known Unix philosophy) to a &quot;framing&quot; where two people were competing to solve the same problem with the same available resources, and one of them did it in a &quot;worse&quot; way. (Also left this comment on the blog post above.)<p>2. Here&#x27;s a comment on the previous thread from someone who says they read the column when it was posted, and their reaction they say was one of cringing -- so at least at that time it probably wasn&#x27;t perceived that way: <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=22418721" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=22418721</a><p>3. Much of the space taken by the literate program is for explaining a very interesting data structure that we could call a hash-packed trie (AFAICT, devised on that occasion for that problem -- a small twist on the packed tries used in TeX for hyphenation, and described in the thesis of Knuth&#x27;s student Frank Liang). One cannot obtain this data structure by combining other programs, only by combining other ideas. (I mentioned this in the previous thread as well: <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=22413391" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=22413391</a>)<p>4. So as far as evaluating literate programming goes, the real question (and the answer is not obvious to me!) is: if you&#x27;re going to write a program that uses a custom data structure (like this), <i>how</i> should you organize that program? Should you write it as Knuth does, or as a conventional program (like I tried to do with my translation: <a href="https:&#x2F;&#x2F;codegolf.stackexchange.com&#x2F;a&#x2F;197870" rel="nofollow">https:&#x2F;&#x2F;codegolf.stackexchange.com&#x2F;a&#x2F;197870</a>)? And as for estimating the value of a new data structure in the first place: as of now (at that question), solutions based on a trie are about 200 times faster than the shell pipeline, on a large testcase. (The hash-packed trie, which Knuth calls &quot;slow&quot; in his program, is not so bad either, and it does economize on memory a bit.)