Why Do You Program?

While I plow through Californian traffic, interspersed between violent curses, I tend to have enlightened conversations with my wife. Her recent question prompted this piece's title.

I am a naturally pessimistic person. Nothing I create is unique, no idea I have is worthwhile, and eventually, I will die a probably painful death. Everything I write will cease to either compile or be interpreted at some point. No one cares about programs written for the Kenbak-1, much less the people who wrote them. I will be surprised if anyone uses anything resembling a modern desktop in fifty years. This is hardly a unique mindset among the programming community.

Despite this, programming has had a consistent golden era. There seem to be no hard numbers on unique programs released per day, but reports from Verizon and Symantec place the number of new malware variants at about 317 million per year. While most of these are probably just obfuscated variants to avoid detection heuristics, a severe number were new exploits - which meant someone had to devote time and effort to reversing an exploit and then crafting a payload that would reliably work on target machines. Not the most moral programming, but we are not talking ethics here, merely desire.

Most programmers do nothing close to virus creation. A quick search of Monster reveals the average job:

Write computer programs to store, locate, & retrieve specific documents, data, & info.

The Programmer / Analyst is responsible for designing, creating, and maintaining new and existing internal applications

Both are obviously creating business facing applications that won't survive the next IT handover.

Likewise, most programs I write are tools meant to help solve one facet of a larger, internal, problem. Take jQueryInjector, developed to allow me to easily skip mandatory surveys. Or srtm_mapper which just allows one to visualize large segments of NASA SRTM data. In relative time of life, I spent a good amount of time on both of these. The former will be irrelevant within a few months, when Google finally adds script-injection to the Dev Console (like Firebug). The latter was, arguably, never useful outside of me showing terrain data to friends and family. I try to be realistic with my achievements.

But startups proclaim that they are changing the world. I remember Bumble used to mumble around with claims they were changing the way dating worked forever. For reference, I met my wife without an aide. Thousands of "To-Do Apps" promise to revolutionize your workflow. For reference, I meet my weekly chore list via a torn-out piece of paper handed to me by aforementioned sources. Anecdotal evidence, obviously, but repeated over all my friends and family.

Even the colossi are not immortal titans. Twitter's woes with existence are well known, even after they attached themselves to the NFL. Myspace, once the breeding ground of pre-teen relationships, has never recovered after their fall from grace. It's a testament to Zuckerberg's business acumen that Facebook still breathes, but even this behemoth is losing younger users to cooler alternatives like Snapfish and Whisper.

So everything you ever make will be forgotten and is ultimately pointless. Count yourself lucky if people still tinker with your magnum opus ten years from now. Regardless, with the march of technology, even that audience will shrink away to nothing. You will die, and while others have produced great works of art that capture a generation's horrors or a generation's conquests, you will be forgotten.

"Because it is fun" is probably the best you are going to do under those circumstances. I never claimed to be a philosopher.