In an interview last year, Donald Knuth, who first published an article introducing the concept of literate programming, mentioned the lack of a big incentive to change as one of the reasons why this methodology has not been embraced by a wider community. In his experience literate programming has influenced the creation of better software, but he agrees with Jon Bentley observing that the requirement of being both good at writing and programming has been a problem for its adoption.
The fact is that literate programming proposes a radically different style for developing programs and their documentation in which the concepts are introduced in an order that is best for human understanding in opposition to the order in which the computer needs to see the code.This puts literate programming at disadvantage with others styles of writing source code, like self-documenting, that require a smaller change of perspective from the developers.
Another side of the problem covered in the paper A case for Contemporary Literate Programing is the relationship between technology and literature programing adoption.
“It was announced at a time that technology could not adequately support it, and at a time that there was not yet a sufficient need for it.”
The following table shows a summary of the steps in the development of programming environments to support literate programming (LPE) that are analyzed in that paper.
|Support a variety of programming languages and produce documents in various formats||Adaptable LPE’s|
|Resolve of problems uncovered by the introduction of object-oriented programming||Tools to create a hypertext version of the program|
|Delegate the need for a document formatting language||Integration of editors with WYSIWYG capabilities|
|Solve problems that arise because the programmer is unable to interact with the extracted code||IDEs that include a compiler and can include numerous other tools such as debuggers and code generators|
|Create documents that can be presented to different audiences in different orders.||Theme Based Literate Programming|
The question is: How to reach a new stage in the evolution of literate programming environments which makes Literate Programming a success?
What I have being reading?
- Knuth. Literate Programming, The Computer Journal, May 1984.
- Lisa M. C. Smith and Mansur H. Samadzadeh. An Annotated Bibliography of Literate Programming. SIG-PLAN Notices, Jan 1991.
- Norman Ramsey and Carla Marceau. Literate Programming on a Team Project. Software – Practice and Experience, Jul 1991.
- Vreda Pieterse, Derrick G. Kourie and Andrew Boake. A case for Contemporary Literate Programming. SAICSIT ’04: Proceedings of the 2004 annual research conference of the South African institute of computer scientists and information technologists on IT research in developing countries, 2004.