The term “hacking” is for sure one of the more misunderstood terms in internet parlance. It seems as of late a lot of people think of it as someone breaking into a system or someone’s account in a system, regardless of whether it was a password guess or if it actually involved breaking the system’s own security.
There’s a far more obnoxious misuse of the term that’s been making its way into startup and internet culture. Have a look at this made up but inspired by real life exchange:
BOSS: Hey, what’s going on, bro?
BROGRAMMER: Not much, man, just hacking away.
BOSS: Oh, yeah? What are you hacking right now?
BROGRAMMER: I just added Twitter OAuth support to our web app.
No, brah, the truth is, you’re not hacking shit. You are using public APIs in exactly the way they were intended to be used to add functionality to your application. That isn’t hacking, that’s developing software. This, however, IS hacking:
BOSS: Yo, man, how’s that little plugin for Mail.app coming along?
ACTUAL HACKER: Well, it’s coming along a bit. Mail.app actually doesn’t expose a plugin architecture or API so I had to get a dump of its header files and take guesses at class and method names to reverse engineer its implementation. Then, once i found the method whose behavior I want to modify, I use an officially unsupported construct of the language to swap its implementation with my own so that I can inject in the functionality we need.
BOSS: Sounds like some intense shit, but why’s it taking so long? Brogrammer just hacked OAuth onto our web application in under a day.
ACTUAL HACKER: …
So please, do us all a favor and STFU about your hacking. Just because your code is shit because you’re glazing over details and writing it all in a day doesn’t mean you hacked anything. Just because your app is a mashup of two different apps that have public APIs doesn’t mean your app is a hack.Â
When you call it hacking, you make people who know business but don’t know much about technology start to think that Twitter could be built in a weekend. You make it sound like a reliable, solid application can be thrown together by some kid who skimmed through a Ruby on Rails tutorial online. Proliferating that mentality benefits no one. You’re cheapening what it means to develop great software.
When you call it hacking, things that actually involve hacks fail to get recognized as the technical feat they are.Â
Developing software requires discipline. It requires an incredible amount of patience and skill. It can be a lot of fun, and it certainly has fewer barriers to entry than other things (like prototyping physical goods) but it’s not something you can just jump into and come out of it briefly later with a meaningful product.
Side note: if you’re a company with an API, don’t call them hackathons. Believe me when I tell you that although useful things could come out of hacks of your API, you wouldn’t appreciate them.
Leave a Reply