I studied CWEB when I did computer science in the early 1990s (eek!).<p>While it is a way to document and compile your programs from a single file, it still contains the problem of where the story of a program should happen, and in keeping the documentation and code in line and up to date with each other.<p>It should also be understood that the documentation is for other programmers and not users, since the printout of the document includes the code in-line.