What Code Are You Proud Of?
July 6, 2008 – 10:29 amI’ve been giving talks about Beautiful Code for ten months now. Mostly I talk about how the project came to be, and a few of my favorite chapters, but I end with this:
My father built most of the house that I grew up in. My mother made ever sweater I wore until I was 28. My older brother made my wife’s wedding ring; my sister made the quilt my daughter sleeps under, and my younger brother made the desk I’m sitting at right now. I’m proud to come from a family that makes things, and makes them well. I’d like my daughter to be proud of the things that I make, but when I think back on all the code I’ve written my twenty-eight years of programming, there’s nothing I can point at and say, “I’d like to be remembered for that.”
So let’s throw it out as a new meme. If your obituary was going to be a few pages of code that you’d written, an architecture diagram, or some screenshots, can you think of something you’d be happy with? And if you can’t, what does that say about us and our profession?
7 Responses to “What Code Are You Proud Of?”
As creative or “making” endeavors go, it seems that programming is uniquely ephemeral. One reason is that there’s rarely an artifact that comes from the work anymore. Successful musicians get a CD to keep on the shelf forever; writers get a book in the library of congress, etc. Some programmers still get that gratification; if you write a videogame that has a big cultural impact, you’ll at least have the box to show off in twenty years. But what if you’re one of the developers of Facebook? Once it’s gone and people stop talking about it, there won’t be any artifactual evidence that you created a cultural touchstone.
Maybe even more importantly, code is completely dependent on specific contexts to have any meaning at all. In a world with no CD player, a CD is a frisbee, not music. And in a world without Ruby 1.8.6, almost all of my life’s work for the last several years might as well be random ones and zeros. Without a very specific context (all of the software, hardware, and web services my code depends on), the code I wrote last week is literally uninterpretable and meaningless — as much as the HyperCard stacks I wrote as a kid, now sitting on a dusty 44 MB Syquest cartridge in my basement. Which is crazy, now that I think about it.
By Scott Raymond on Jul 6, 2008
For the most part, I see the code as a means rather than an end. I’d rather show off applications, rather than the code that makes them possible. I think it’s similar to art — the finished product is the impressive thing, and often the process of getting there is not as glamourous as we’d like to think.
By Patrick Dubroy on Jul 6, 2008
I think that more importantly is the idea of tangibility, which goes along with what Scott said. A desk, a house, a sweater, and a blanket are all physical, tangible things. Code, an abstract concept at best to most, simply isn’t.
I think a better question would be “What Software Are You Proud Of”? For example, a developer on project X may be particularly proud of how he optimized an inner loop of some function, but that’s not tangible. However the retail boxed product, or final shipped copy, is.
Code is but a means to an end. Asking a developer what code he or she is proud of would be similar to asking a poet what word he or she is most proud of. Software engineers/coders use code to make software. Poets use words to make poetry.
By Zach Riggle on Jul 6, 2008
I’m quite proud of things I made, like my first game or my first website or my first game website. That’s why I like programming, making stuff is fast.
By Lucian on Jul 7, 2008
I guess the doctest entry at Wikipedia, so far.
It’s not mine, but I started it and put a lot into its maintenance, and learnt a lot by doing it.
I get a buzz when I see other people link to it, and other pages were I have spent time making them better.
I also get a buzz when someone says thaks and you know you’ve helped them on comp.lang.python.
- Paddy.
By Paddy3118 on Jul 7, 2008
I think that is part of the dawning realization that code is process, not product. Code is improv! Even our deep, bedrock pieces of code like the Linux kernel are interesting because of how fast they change, not because of how perfect they are. And I’m more excited to be able to create something new than to have a library of stuff that I’ve done.
And there’s nothing wrong with that! We just need to stop thinking of ourselves as architects and construction workers and painters, and think more about theatre, jazz, and dance.
(this idea isn’t original to me; google “disposable code” and “code as performance art”)
There are a few exceptions: discovering a new algorithm causes a permanent change to reality — but that’s not what I do for a living.
By jes5199 on Jul 8, 2008
I’m not so sure the ephemerality is so important. A novel that I like (_Stanley Park_, by Timothy Taylor) deals with cooking, and makes the point along the way that the art of the chef, however brilliant, touching, revealing or illuminating, will have been totally destroyed some twenty minutes after it’s complete. That hasn’t stopped the art of chefing.
By Mel on Jul 10, 2008