“Hacking”

Aristotle on 2007-03-04T21:49:17

This entry was inspired by a conversation in which I mentioned my attendance of the Hackathon to a non-programmer friend. How do you explain to them what hacking means?

A lot of definitions of the term have been attempted over the years. The one that’s always stuck with me was the one established by the Chaos Computer Club: in German, “der respektlose Umgang mit Technik,” which means “the irreverent handling/use of technology.” I’ve always liked it because it’s broad enough to capture that the essence of a hack is a particular mindset and not what thing is employed for the hack.

But it’s also always irritated me, because it captures the mindset indirectly via one somewhat incidental artifact: the stated irreverence is just a result of a mindset that precludes being limited by the conceived purpose(s) of the tool. The statement is also vague enough that it can’t possibly stand on its own, requiring examples or a long-winded explanation to give it legs.

So in this chat, I managed to accidentally come up with a definition that – by my own perception anyway – is more precise than the CCC’s without being so flailingly hand-waving as it’s typical for such definition attempts. What I stumbled into is that hacking is “the act of making a tool do something, motivated at least in part by the joy of the creative process of getting it to do that.”

The tool in question doesn’t have to be a computer. It might be a mere pocket knife. Likewise, the goal doesn’t have to be self-amusement. It might just be to earn one’s next salary. But it’s not hacking if you can’t appreciate the act for its own sake, and it’s not hacking if such an application of the tool is obvious.

It amuses me how I got there. I didn’t want to get into philosophical navel-gazing about what hacking is (nevermind that I did anyway), so my first iteration was simply “programming.” But it’s broader than just programming; so after some thought and deliberation, the second iteration was “making a computer do something.” It’s not a long step from there to “making a tool do something.” Now just add a qualification that it’s done for the joy of doing it and there you are.

It really isn’t that complicated.