OSCON Day 2: Semasiology of Open Source (part II)

   Print.Print
Email.Email weblog link
Blog this.Blog this

Robert Kaye
Aug. 03, 2005 10:29 PM
Permalink

Atom feed for this author. RSS 1.0 feed for this author. RSS 2.0 feed for this author.

Robert 'R0ml' Lefkowitz's "Semasiology of Open Source (part II)" just wrapped up and upon reflecting on his presentation I'm both a lot more clear about what he presented last year and I'm also utterly confused about both of his presentations. Against my better judgment I'll try and summarize what he presented this year and last year.

I attended this talk last year and was fabulously entertained by his presentation, but in the end I was confused about where he was going with his talk. It turns out that he misjudged the length of his presentation and actually only managed to present half of it -- hence my confusion. So this year he finished his presentation from last year and I'm... erm. confused. Still.

So, I managed to track down R0ml between sessions and asked him to elaborate about the overall point of his talk and how all his points tie together. His response: "I guess that's really for the 3rd part -- consider this as a journey with many interesting points". Phew. I feel a little better now that I'm not trying to tie together all of his excellent, but disparate points.

R0ml first illustrated the concept that:

"Programs must be written for people to read and only incidentally for machines to execute."

This certainly seems contrary to common practice, but 70% - 80% of development is maintenance, and 70% - 80% of maintenances is reading code. This makes half to a third of software development reading code -- and thus it follows that code should be written to be readable by humans. Much along these lines, R0ml went on to point out that in 1984 Donald Knuth claimed that programs are works of literature:

"The practitioner of literate programming can be regarded as an essayist, whose main concern is with exposition and excellence of style."

Good point. I think open source programmers should probably be more concerned with the readability of their code -- if they care to have their project attract other hackers to contribute. Personally, I need to pay more attention to this valuable point.

Next was R0ml's point on the evolution of reading and the public performance of ... source code?? R0ml asserts that copyright protects against unauthorized copying, derivation, distribution, and public performance. But what does it mean to publicly perform source code? In R0ml's eyes that means reading code out loud, and to check the accuracy of this he digs into the history of reading.

All early reading involved very simple code recognition, since early writing was primitive. The early function of reading was transmitting information not receiving it as we do today. To read meant to read out loud -- the concept of silent reading for one's own enjoyment didn't come along until much later. So writing was an aid to the reader in the process of passing down information that would've normally been passed on orally.

Later on the space and punctuation were invented and words became recognizable units, as opposed to an undelimited sequence of characters that had to be read out load. Silent reading became possible and was no longer a public performance. So, his thesis on reading source code out loud being a public performance doesn't hold water.

In the end, R0ml stated:

programming == literature, and
reading != performance

This was in fact a journey with many interesting points -- I'm looking forward to part III next year. Afterall, at some point I'd like to make sense of this all.

Robert Kaye is the Mayhem & Chaos Coordinator and creator of MusicBrainz, the music metadata commons.