literate programming

## donald knuth ### The Computer Journal


knuth presents his idea about literate programming: essentially, writing some piece of source which then can render as both TEX file for documentation and .PAS (for example) as source code, so as to make sure that ideas are always expressed at the higher (highest?) level. his conception of literate programming, is thus focusing on the literary as writing in english(-like) linguo, rather than writing literarily in programming linguo. literary programming closer to poetics than to aesthetics

moving from structured programming to literate programming.

paradigm shift to explaining to humans what we want the computer to do.

“programming is a very personal activity”, “i’m able to write programs as they should be written” (emphasis on should!)

he states that Pascal, because of the wide educational support it has received, is not his favorite language, but is everyone second-language, so it’s easy to express ideas in it.

so far he’s been only describing this new tool he’s been working on, and perhaps it would be worth to examine the code there to see to what extent that code is somehow beautiful?

what is interesting, though, is that it cares about the meta-writing, the (operational) description of the program, linking both source and documentation, but thus hiding the source (by having it generated from the .web file / cf. p8). the only “low-level” agency the user has is to change some bits of formatting.

which means his literary understanding is aimed towards stories, narratives, arcs, etc. rather than specific beautiul sentences.

here too, he says that not being able to declare variables close to where they are supposed to be used is an annoying feature of pascal.

he concludes with the assessment of the economic advantadges and disadvantadges of such a system. funny that, in the end, the economics prime in relationship to the literary

“It’s harder to fool myself when I’m writing a WEB program, because I am in “expository mode” (analogous to classroom lecturing)”

he’s dreaming about a literary journal of source code WEB files

george forsythe, 1966 “a good algorithm is a piece of scholarship, and its source code should be a published article”

“I had no idea how to take a piece of real software, with all the compromises necessary to make it useful to a large class of people on a wide variety of systems, and to open it up to public scrutiny”

there is thus always compromise when writing code. compromise in what?