Don Knuth created Literate Programming about thirty years ago. It could be called a methodology, discipline, paradigm, … Bentley’s “Programming Pearls” article about Knuth’s book, TEX: The Program, caused a huge stir in the computing professions. Soon there was announcement of a Literate Programming section for the CACM. There then appeared a number of “Literate Programming systems”.
The use of the term Literate Programming is often applied to systems that have few of the characteristics of Knuth’s WEB. There are at least two systems that are still in use that are quite faithful to the philosophy that Knuth elucidated in his original Pascal based WEB system: CWEB and FWEB. These support at least three languages each. Most other systems are relatively independent of language.
I will propose a definition for Literate Programming that will be used in my comments about some of these systems. I will also discuss some items from my archives (or memory) about this and related subjects. Some come from teaching the freshman year of computer science using literate programming.
I believe that this style of program development is a great contribution to the goal of creating excellent and maintainable programs. I have often wondered how many of the errors that Knuth has rewarded us for would have even been found if the program had been in the style of Unix “pretty printing”. In spite of this, it is referenced too little. I will offer my opinions as to why this tragedy persists, what I/we should have done—based on my humble view from my faulty crystal ball.