[]RSS

[ Here: About | Archives+Tags | Artwork | Resumé | Contact ] [ Elsewhere: Comic | Projects | Philosophy | Work ]

Year of the boiled frog

[Comment]

January 5th, 2003 in Rants

In 2002 I was lucky enough to brush my brain against many software concepts and designs. I saw a number of respectable tools — elegant designs, smart implementations, and ethical release strategies. But the bulk of the bits I worked with were nothing less than cranial crud. Most software still sucks.

My plan was to rant about how bad software was in 2002, but I found that drafts of the article were … well … tired. The same software that sucked last year, sucked again this year — and for the same reasons. I found I was focusing on a few bad tools, and a few short-sighted practices. Not really a constructive effort.

Instead, I’m going to remember what excited me about software this year. It’s more fun to be passionate than to be cynical about stuff anyway.

rm -fr java.rant ms-is-evil.rant silly-processes.rant 

I started the year a bit disappointed with C++ and its standard library. It wasn’t anything about the language or tools specifically, rather I was generally deflated by the mountainous learning curve. I was on the tail end of a few projects that struggled due to the mismatch of people and the toolset. C++ is hands-down my favorite power-tool, but few developers should be allowed to use it.

Since the beginning of the year I’ve found my love for C++ again — through a few projects where I worked with competent developers. I was also lucky enough to be forced to use MFC, which reminded me how incredible the STL is.

I’ve been using Perl a lot this year. It started out as a self-proof — that I could learn to like anything, despite my initial perception of it. Now Perl is one of those languages that rubbed me the wrong way: it is messy, seemingly incongruent, and not terribly symmetrical. A few years ago, I really didn’t like the language — but it was a prejudice of youth (or stupidity) that eventually matured into agnosticism.

As a tool of growth, I forced myself to use Perl for a few small projects. I fell in love with the language. Perl is a truly beautiful, powerful tool, despite many surface flaws (it does look messy). The great thing is that it just works: it is simple, completely focused, and it solves a certain set of problems really well. The world needs more specific tools like Perl.

2002 also marked the year where I began to understand the purpose of the GPL. Freedom is truly a fundamental principle, though it is an easy place to comprimise. As a participant in our socialist / capitalistic society, I find it difficult to balance freedom with the improvement my own life. But, unquestionably, the pursuit of money and power removes freedoms. Not always our own freedom, but it always reduces someone’s freedom (the law of conservation of freedoms as it were). And over time, our collective liberty slips away from us.

In terms of software, I was conservative. I didn’t notice the freedoms as they were removed. Slowly, from my first experiences with computers, software development was reduced to a very closed activity. Not-so-suddenly, software became inaccessible. Learning new technologies became difficult. Working with the tools became painful — as they changed so slowly, and new releases (basic improvements and fixes) too often cost money.

I found myself wishing I could do something. I reported bugs to a number of software companies, but few were responsible enough to acknowledge (let alone fix the bugs). I wrote tools to improve existing software, from the outside (as I had no access to the internals of anything). I found myself locked into a number of vendors, with all my projects stuck using shitty 3rd party libraries. Some of the vendors even dropped support for their libraries, paralyzing our efforts. I had no ability to do anything about the quality or direction of these libraries, as the vendors just didn’t care. My only ‘choice’ was to use alternate tools and libraries — which were all roughly the same, less a few very rare gems (not to mention cost of adoption and licensing). I started to hate software development.

Now you would think that once I found out about Free Software that it would have been obvious. It wasn’t. In fact, I missed the point of it for a few years — mostly because I believed the FUD surrounding the ‘freedom’ of capitalism, which implied that non-commercial software sucked. Bunk, all of it. Quality is a product of time, effort, ability, and passion. Money is one of many catalysts, and certainly not the best.

The low-cost of liberated software isn’t the primary freedom either, though this is what I (and most people) first notice. The incredible part of free software is to be Free from the effect that greed and power can have over software. I’m now able to learn from the sources of all of the software I love to use. I can contribute to every project (bugs, fixes, ideas, artwork), and can fix things when they are broken. I’m no longer locked into the whim of a single corporate entity.

And best of all, the Freedom (like the one provided in the GPL) is amplified by the multitudes of people that participate by publishing software with it. The result is incredible! It is ethical software, not bound by dishonesty. It is transparent software, open for all to see. It is excellent software, powered by the passion of people free to develop to their full potential. It is the way software should be.

Note that Liberated software isn’t incompatible with capitalism. Free software brings some responsibility back into commercial software. Think of it as a democratic approach to engineering, without a fixed approach to the bureaucracy of it. It is just a good thing.

Speaking of excellent liberated software, I found many incredible tools in 2002: GNU/Linux (2.4 kernel), GCC 3.2, Gnome 2, XFree86 4, Mozilla 1.x, Galeon, GVim, bash, Perl, Python, Php, GNU Autotools, and Cygwin (to name a few). I’ve never been so impressed by a set of tools. Each and every project is truly excellent, better than similar closed tools.

All in all, 2002 was an excellent year. I learned a lot, produced some good software, and found some Freedom in my working world. Here’s to 2003: may we all find freedom and happiness in all that we do!