literate programming

The literate programming movement pioneered by Donald Knuth likens software to text and assumes that knowledge should be presented to both humans and compilers in the order in which it is most easily learned, not necessarily the most easily processed.

It was very influential especially on iterative design and domain-driven design methods which tend to require very close and early attention to get the words right.

It is considered to be essential in certain methods such as aspect-oriented programming or constraint programming where it is easy to lose track of triggers or trace control flow without good comments. The use of logging is important in these and also to track changes in wiki data, e.g. most recent changes.

Literate programming is also closely related to the free software and Common Content movements. Effectively, in its insistence on sharing all the knowledge that goes into a design, it relies on Share Alike principles to put original authors, early and late editors, all on similar terms, none with any great ability to restrict editing by those who come later. The New Troll Point of View was very strongly influenced by that of literate programming, in which latecomers are more empowered than early creators.