<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Sam Wilson&#039;s Journal &#187; Donald Knuth</title>
	<atom:link href="http://samwilson.id.au/tag/donald-knuth/feed/" rel="self" type="application/rss+xml" />
	<link>http://samwilson.id.au</link>
	<description>A car-free web geek, recording this and that in the digital memex, mapping and cycling in Fremantle, striving for a bit of simplicity, and now and then building bits of wooden furniture by hand.</description>
	<lastBuildDate>Mon, 07 May 2012 08:15:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Literate Documentation: Writing about the code</title>
		<link>http://samwilson.id.au/2010/01/29/literate-documentation-writing-about-the-code/</link>
		<comments>http://samwilson.id.au/2010/01/29/literate-documentation-writing-about-the-code/#comments</comments>
		<pubDate>Fri, 29 Jan 2010 02:45:27 +0000</pubDate>
		<dc:creator>Sam Wilson</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[documentation]]></category>
		<category><![CDATA[Donald Knuth]]></category>
		<category><![CDATA[javadoc]]></category>
		<category><![CDATA[Literate Programming]]></category>

		<guid isPermaLink="false">http://samwilson.id.au/?p=498</guid>
		<description><![CDATA[This morning I’m returning to work on some code that I haven’t touched for a few months, and I’ve been rather dreading getting back to it. I’ve forgotten all the details; never knew many of them anyway. I was working with someone else on this, and so have to get my head around their work [...]]]></description>
			<content:encoded><![CDATA[<p>This morning I’m returning to work on some code that I haven’t touched for a few months, and I’ve been rather dreading getting back to it. I’ve forgotten all the details; never knew many of them anyway. I was working with someone else on this, and so have to get my head around their work too. And of course, all I’m trying to do is modify one little (well, constrained to one package) part of the program.</p>
<p>How to not only get over this being an annoying chore, but actually get excited again about the program? Start at the top, read through all the <a href="http://java.sun.com/j2se/javadoc/index.jsp">javadocs</a>, read through the code, and as I go make the documentation better. Write the <em>story</em> of the program — the narrative of the code. Documentation, in my view, should not only be useful and readable and thoroughly explain the code, it should actually be <em>interesting</em> to read!</p>
<p>This is the essence, I feel, of <a href="http://en.wikipedia.org/wiki/Literate_programming">Literate Programming</a>. I know there was much more to <a href="http://en.wikipedia.org/wiki/Donald_Knuth">Knuth’s</a> idea than verbose code commentary, but the idea of being able to sit down and read a clear human-language expository of a programme is very powerful. The documentation that is produced is a hypertext, but the nodes of it should be complete, interesting, explanations of how the code works and why it was written the way it was. </p>
]]></content:encoded>
			<wfw:commentRss>http://samwilson.id.au/2010/01/29/literate-documentation-writing-about-the-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

