Wednesday, July 20, 2005

Good Code := Poetry

Steal this poem v1.2

This poem is copyleft,
You are free to distribute it, and diffuse it,
Dismantle it and abuse it,
Reproduce it, and improve it
And use it
For your own ends
And with your own ending.

This is an open source poem
Entering the public domain
Here’s the source code,
The rest remains
For you to shape, stretch and bend
Add some salt and pepper if you want
Share it you amongst your friends.

Because I didn’t write this poem, I molded it.
Picked up the lines out of a skip and refolded it
As I was walking on over here,
Rescued leftover ideas,
On their way to landfill,
Found screwed up fragments
And found them a use.

Because, think about it
I can’t tell you anything truly new.
There can only be few more new ideas to be thought through.
So should we treat them as rare commodities, high value oddities?
Probe the arctic reserves and other sensitive ecologies
For new ideas buried deep beneath the permafrost?
No! we should re use and recycle them
Pile our public places high with ideas beyond anyone’s imagining..

So I steal a riff here and a rhyme there,
A verse here and a line there
Pass them on around the circle,
Roll the words, add a joke
Here go on.. have a tok,
Does it get you high?
This poem is indebted to Abbie Hoffman, Gil Scott Heron, Jim Thomas and Sarah Jones,
This poem is indebted to all the words I’ve read and the voices I’ve known
This poem is a composit of intellect, yours and mine.
This poem RIPPED OFF every single time

Because intellectual property is theft
And piracy our only defense left against the thought police.
When no thought is new
It’s just rewired, refined, remastered and reproduced
The revolution will be plagiaraised
The revolution will not happen if our ideas are corporatised.
So STEAL THIS POEM
Take it and use it
For your own ends
And with your own ending

This poem is copyleft,
All rights reversed

Clair Fauset
Email: angelclare@riseup.net
Homepage: www.hammerandtongue.org

This poem was the lead in to an article in issue 50 of Linux User & Developer which can be found in bookstores as of the writing of this blog entry. The article goes on to discuss a topic very near and dear to my heart.

In the dim and distant past dear reader when yours truly piled the majority of his worldly possessions into the folded down back of his 1977 Dodge Colt and departed fresh faced and idealistic for college it was not to earn a degree in software engineering. My chosen course of study was art (much to my father’s chagrin I might add). Visions of Renaissance and Dutch masters spun through my head as the miles rolled by. Had anyone told me then that nearly 20 years later I would make my living writing software I would have scoffed and thought them mad. Who was truly mad I wonder?

Colleges and universities around the world teach software development the same way, as an engineering discipline. This is in large part a result of the fact that for several decades computers and the building of programs to run them has been the domain of lab coated scientists from the halls of academia.

I find it an interesting corollary though that most of the “good” software developers I know are also gifted in some form of art. I draw and paint and occasionally much to the suffering of my wife and children dabble in music. A number of developers of my acquaintance are musicians and still others writers and poets. My best friend and partner in crime (who’s blog can be found at http://bmccord.blogspot.com/ ) posits that good code is eloquent, even poetic. In his book on refactoring (Refactoring; Fowler, Martin; Addison-Wesley Publishing (ISBN:0-201-48567-2)) the author talks about code smelling good or bad.

Engineering as a practice focuses on the known, the quantifiable, the procedural and doctrinal. Art as a practice focuses on the unknown, the intangible, the unseen and improbable. Which is better? I suppose that depends on what you want to accomplish. Both approaches to the problem certainly have their benefits and their limitations.

As we move forward to educate software developers though we have an obligation to teach them not just the known and the predictable, but also how to seek how to explore how to find what lies beyond sight.

In art school everyone is required to take numerous drawing courses during which will inevitably be many exercises in drawing “negative space.” When one draws negative space one focuses on a single object (often a chair) and then erases the object from their vision and draws what lies around it and within the nooks and crannies. By doing so the artist defines the object not by what it is, but by what is around it. This type of exercise goes beyond teaching the student to draw what they see, into the realm of drawing not even what they don’t, but what could be.

Software developers often deal in the intangible and the unknown, the at best sketchily defined requirements that users and stakeholders provide. If we teach software developers only that which is known and not how to seek then we only half way arm them to accomplish the one goal of every development effort, placing usable software in front of the users.

But that’s just my opinion, your mileage may of course vary.

0 Comments:

Post a Comment

<< Home