Until an Asteroid


(The title of this post is taken from the closing of this letter from _why.)

I didn’t know much about the Ruby community until late last year, so I didn’t have the opportunity to interact with _why or learn from him while he was still active. Since discovering him and his work (including Bloopsaphone, Camping, Hackety Hack, Shoes, and of course, Why’s (Poignant) Guide to Ruby), I’ve come to really appreciate both his projects in particular and the role of craft in software in general. I’m hopeful for his possible return, which has helped reify some of my thoughts about the the intersection of programming and art.

It’s not really correct to say I’ve come to programming from poetry. I’m continually developing my abilities in both areas, and I’ve found that each informs and influences the other: both require careful attention to detail, questions of semantics and syntax, and a blend of structure and flexibility that makes you feel more like a karate master than a writer or programmer when you get it right. Writing poems is hard. Writing software is hard. It might not seem so at first, but the underlying difficulties are the same: getting the machine to react the way you want. When writing programs, this consists of getting a complex system of metal and silicon to correctly execute a series of instructions. When writing poems, this consists of getting a complex system of blood cells and neurons to experience a particular emotion. That’s really all poems are—emotive programs.

The thing I like most about _why’s approach is that he unabashedly endorses the role of the artistic and the experimental in writing software, even if this renders a program less efficient or less readable. Programming and art are both about pushing boundaries, reconfiguring norms, and mastering rules to the point where we know how to break them intelligently. We have to be a little fearless when writing. There will always be critics to tell us that our poems are incomprehensible or our software is sloppily written. We will always question whether anyone will even read, let alone remember, our work. Regardless, we ship our products out to little journals or type git push origin master. What else to do?

I do hope _why comes back. I hope that the same person who played the role of _why chooses to do so again, picking up where he left off, maintaining his dedication to teaching newcomers (especially children) how to program and, moreover, stressing that programming is something more than algorithms and data structures. If he chooses not to, though, then I hope someone else takes up the mantle of _why: a “freelance professor” whose goals are to teach people, to foster creativity, to expand horizons, and to make programming fun (as well as a little surreal). As _why has said: “Not all code needs to be a factory, some of it can just be origami.”

Much of what I enjoy about the Ruby community was made possible by _why, and I think it needs a whimsical, iconoclastic figure to maintain the sense of wonder he worked to promote. I’m reminded of the wise fool stock character in Shakespeare’s plays: while he was ostensibly around for entertainment, his real utility was in his ability to question or correct nobility without getting himself killed. Who else can mock the king and get a laugh instead of the axe?

Ruby needs _why and programming needs _why, regardless of who’s behind the digital mask. The last _why was excellent. Here’s hoping the next is just as great.