It’s been more than three decades since literate programming was invented by the legendary Donald Knuth. Its promise was immense — creating software which was more reliable, more understandable, more maintainable, and with hugely more teaching value — software which targeted both humans and computers.
What is literate programming? How has literate programming evolved? Why hasn’t literate programming taken off? Where is it headed?
In this three-part series, we’ll take a detailed look at these questions. This first part is an introduction to what is literate programming. (The second part, an overview of the challenges with literate programming, is here. The third part, about where to go from here, is here.)
What is literate programming?
Let’s define literate programming.
Literate programming refers to melding a descriptive narrative and computer code into a single document, from which both human-friendly documentation and computer-readable files can be created.
Let us quote from Knuth’s paper on literate programming:
The practitioner of literate programming can be regarded as an essayist…