Sunday, January 13, 2013

RIP Aaron Swartz


I am taking an online course about programming right now; I needed to install some files in order to do the exercises that come with it. I was doing so by reading the instructions but in the section about testing the installation it missed a step - basically it didn't say I needed to input a command after another command. If I hadn't taken a look at the video demonstration of the installation it would have taken me at least an hour to find out how to progress from that point that I got bogged down.

It's actually very hard to tell people what to do. Leaders get it easy because the people that they command invariably have the expertise and familiarity with the thing they are being commanded to do. A president could most likely get away with commanding his generals to win this piece of real estate by such-and-such time; the generals will have an idea of what to do to make this happen and if it really can't happen they'll be able to give the president feedback on alternative courses of action. But imagine that you are a programmer. What you are commanding has only the ability to perform tasks at lightning speed - it does not have the IQ to tell you that it doesn't have enough resources to perform this thing you're telling it to do. It cannot make an intuitive leap between two steps, which means every command has to be at its most basic. You  are the one who has to break things down, you are the one who has to imagine the situations that the system will encounter and somehow factor them in to commands written in a language that only the computer understands.

Things are easier for programmers nowadays, in that there are frameworks and standards and elaborations that make computer language closer to normal human language, or enables the computer to tell you that you messed up the command that you just typed. I respect the developers who make these things for the coding community; they are somehow able to make the concepts come alive within them and they end up creating such useful, stable, reliable technology. I am nowhere near that level; where I am I can get the structure and flow of an application I'm working on, but the specifics of syntax is where I fail. And I'm still at a pretty good level, for someone having just one year of formal education in software engineering; as recently as 2007 there was a problem with computer science applicants not being able to write code at all.

Aaron Swartz is a developer who is one of the greats I am talking about. His code is still being used today by the whole world, and that is a testament to his skills. That is why I have mixed emotions over what happened to him; on the one side, I feel angry that such a brilliant man was laid low by a law that was passed way back in 1986 by a group of people who could not have foreseen the current state of computer technology - people who are prey to the same problem that befalls programmers, yet who were not trained to figure out loopholes and potential exploits. On the other hand, I can't help but see how meet it is that a programmer should be done in by buggy code.

Black humor aside, America needs to do a lot of debugging to make up for the injustice they've done. I think this video could help start things off:




No comments:

Post a Comment