December 7, 2025
When code meets bedtime stories
What even is "literate programming"?
Old-school coding comeback — storytellers vs “do your homework” crowd
TLDR: A new explainer revisits Donald Knuth’s “literate programming,” mixing code with narrative. Commenters split between storytelling fans and skeptics who say the 50-year-old idea still doesn’t fit real teams, with worries about tools and writing skills—raising big stakes for how we keep software readable and maintainable.
Knuth’s decades-old idea of “literate programming” — writing code and a human-friendly explanation in one place — just got a fresh explainer, and the comments exploded. Fans cheered the “tell it like a story” vibe, with one champion bragging they’ll write 10x more words than code to guide future readers. Teachers in the thread broke it down for the newbies: you “weave” to make pretty docs (like a PDF) and “tangle” to produce the actual code. Skeptics, though? They came in hot, arguing that if an idea still needs a blog post after 50 years, maybe it’s not that great.
The drama split the room: the romantics want code-as-novel, the realists want code-that-ships. One commenter called out missing links to Knuth’s original papers, while others worried about the real blocker — writing good English and naming things clearly on big teams. Cue memes about “English being the hardest programming language” and jokes like, “Are we shipping a book or a feature?” Meanwhile, tool talk raged: which editor, which format, who maintains this? The vibe: a tug-of-war between clarity and convenience, with Knuth fans waving primary sources like holy texts and pragmatists muttering, “nice idea, bad calendar.” Either way, readability vs. reality was the cage match of the day.
Key Points
- •The article analyzes Donald Knuth’s concept of literate programming as top‑down exposition combined with flexible coding order.
- •It situates literate programming in the 1970s context of structured programming and critiques rigid top‑down subroutine decomposition popularized by Harlan Mills.
- •Knuth’s WEB manual is cited for influences: Edsger Dijkstra, Pierre‑Arnoul de Marneffe’s holon programming, and Edwin Towster’s documentation conventions.
- •Knuth considered requiring explicit data environments in submodule names too verbose but emphasized naming modules to reflect unusual control or data structures.
- •An addendum describes Marneffe’s holon programming model: programs as trees where control flow is in node chunks and assignments occur only in leaf chunks.