One of the absolute best techie <i>koans</i> I've come across is this "closures vs objects" one by Anton Van Straaten -<p><a href="http://people.csail.mit.edu/gregs/ll1-discuss-archive-html/msg03277.html" rel="nofollow">http://people.csail.mit.edu/gregs/ll1-discuss-archive-html/m...</a><p>Reproduced below -<p>The venerable master Qc Na was walking with his student, Anton. Hoping to prompt the master into a discussion, Anton said "Master, I have heard that objects are a very good thing - is this true?" Qc Na looked pityingly at his student and replied, "Foolish pupil - objects are merely a poor man's closures."<p>Chastised, Anton took his leave from his master and returned to his cell, intent on studying closures. He carefully read the entire "Lambda: The Ultimate..." series of papers and its cousins, and implemented a small Scheme interpreter with a closure-based object system. He learned much, and looked forward to informing his master of his progress.<p>On his next walk with Qc Na, Anton attempted to impress his master by saying "Master, I have diligently studied the matter, and now understand that objects are truly a poor man's closures." Qc Na responded by hitting Anton with his stick, saying "When will you learn? Closures are a poor man's object." At that moment, Anton became enlightened.
As somebody continually interested in new and successful user interface ideas, the GUI one has me tickled pink:<p><a href="http://catb.org/esr/writings/unix-koans/gui-programmer.html" rel="nofollow">http://catb.org/esr/writings/unix-koans/gui-programmer.html</a><p>because it is true that point and click will always suffer from a loss of expressivity in the way that this story so perfectly captures.<p>In a way, though, the koan also illustrates the flip side: if the expressive solution to something is a new language, how do you empower somebody who doesn't know or can't learn the language? The same way a person who goes to a foreign land tries to communicate basic ideas--by sign language, or symbols, or pictures. Sure, sometimes you will be misinterpreted and get peed on. And you can only handle the basics, like asking for food or directions; discussing philosophy or politics is probably out of the question. But it's better than not being able to communicate at all, and for many problems, people are happy with buying the pictographic toolkit that lets them do their job.
Ah, this one takes me back.<p>It's almost a pity no one else has mentioned the classic Tao of Programming by Geoffrey James:<p><a href="http://www.canonical.org/~kragen/tao-of-programming.html" rel="nofollow">http://www.canonical.org/~kragen/tao-of-programming.html</a><p>A bit dated now, and it looks like ESR has improved on the concept considerably, but this little classic will always be my favorite:<p>"Each language has its place within the Tao.<p>But do not program in Cobol if you can avoid it."
The problem with articles written by ESR is that the actual discussion gets drowned out by people complaining about the author. The signal to noise ratio goes way, way down.
Raymond wrote a post about the koans and some of his other stuff Saturday, <i>Mystical Poetry and Mental Postures</i> - <a href="http://esr.ibiblio.org/?p=2596" rel="nofollow">http://esr.ibiblio.org/?p=2596</a> ; that I linked on HN - <a href="http://news.ycombinator.com/item?id=1729978" rel="nofollow">http://news.ycombinator.com/item?id=1729978</a>.
if you find the design of the site's annoying for reading, you may be willing to the readability version of it on a gingle pdf file<p><a href="http://dl.dropbox.com/u/135679/output.pdf" rel="nofollow">http://dl.dropbox.com/u/135679/output.pdf</a>
As much as I love zen koans, especially hacker koans, it's worth remembering that ESR doesn't really code and I don't know if he merits the 'authority' that some people ascribe to him.