Literate Programming for the 21st Century

Accepted Session
Short Form
Scheduled: Tuesday, June 18, 2013 from 4:45 – 5:30pm in B202/203


Knuth advocated writing programs for people, not computers. How does crafting code with literate programming play with quick iterative development? Example heavy session using org-mode's Babel project and progrmming languages with succinct syntax, like Scala and Clojure.


Donald Knuth once wrote:

Let us change our traditional attitude to the construction of programs: Instead of imagining that our main task is to instruct a computer what to do, let us concentrate rather on explaining to human beings what we want a computer to do.

He then wrote a series of papers and a book about how programming shouldn’t be a collection of computer-oriented files with comments, but a human-focused document sprinkled with code. He called his programmatic idiom, Literate Programming.

Doug McIlroy and many others have claimed verbosity, and with the exception of some projects, like Docco, Literate Programming became an out-dated concept from last century’s academia. However, succinct languages like Scala and Clojure, as well as a desire to bring community members together to work on open source projects, literate programming may have found its place.

In this session, I’ll talk about the good and challenging aspects of literate programming and how it relates to the modern agile developer. And since success requires good tools, I’ll demonstrate the concepts using org-mode and its Babel project to tangle architectural thoughts and developer notes with code to implement a vibrant, helpful document for your peers to make your code easier to understand and maintain.

Speaking experience

As an engineer with over twenty years experience, I've seen a lot of ideas in our industry come and go. However, while the open source movement has been the best idea, I'm often frustrated as the high barrier to entry for many projects, and feel that a good place to start is how to structure and document our OS code.