Free Software Ethos

Last week, Jono Bacon posted a question to his blog asking about why we’re passionate about Open Source. It’s a question I’ve been thinking about a lot lately, so when the post was put up, I decided shortly thereafter that I needed to put my thoughts down.

I’ve been using computers since about the age of five. Admittedly, this was 1988, quite a bit later than many of my contemporaries, but such is life. At the time, we used to frequent a shareware shop, picking up 5 1/4” floppies with various programs (mostly games), or grabbing things elsewhere. Actually, I spent an lot of time playing Nethack, which means I’d also encountered my first violation of a free software license, since I know the source code was not included on the floppy of nethack we had in our house.

My first real introduction to Free Software came in the form Linux, specifically a Debian install disc included with Maximum PC (a long-defunct computer magazine), which based on the Debian Timeline, I think must have been Debian 2.0 “hamm”, though it might have been “bo”, putting this sometime in 1998. At the time, I really messed up that first install, forcing Debian to install every package in the disc’s repository, even those that conflicted. Needless to say, the system was wholly unstable, but the little bit I could play with it, and what I’d read, made me intensely interested in Linux as a platform.

It was more than that. I’d known, pratically since the first moment I sat down at a computer, that I intended to work with them. It didn’t take long before I was trying to learn everything I could about the system. Of course, we were running DOS on a 286, so the closest thing to a development experience we had was a GW-BASIC interpreter, still I played a lot with BASIC, and trying to examine other things about the system. We didn’t have a Modem at this time, so I was not very attached to the whole BBS scene, except through a friend or two, which if anything, simply slowed down my introduction to hacker culture.

The time I was growing up was the heart of the “Don’t Copy That Floppy” battles for mind-share. For the record, I had done my share of piracy as a kid, but part of that was simply lacking the resources to pay for things, especially shareware, which usually involved mailing checks places. I think that it is part of what made Free Software so interesting. Here were people building an entire Operating System for the love of it, and even in the mid-90s there were a handful of people who were able to make a living at it.

There was something freeing in using Linux for me. First of all, development tools were simply at hand. Getting a C compiler on DOS was difficult and expensive, until I lucked upon a free copy of Borland C++ 4.0 that someone was looking to get rid of. There was more to it than that. There was something cloying, exciting about using Linux for me. I felt as if I was in control.

It was around this time that I started my first open source project, a simple program to add, subtract, multiple and divide matrices written in C because I didn’t trust that my TI-83 was doing the right thing. I was about to say I should see if it still compiles, but it looks like I borked the links to the tarball at some point. I’ll need to correct those…

It was exciting, releasing something that I’d written, and posting it up to Freshmeat, but what was more exciting was receiving patches from contributors. I received a bunch patches from a half dozen or so other contributors, patching bugs and adding bits of functionality. I had a bunch of changes, and I even packages it up for Debian, though I never aggressively sought sponsorship for the package.

I switched to Linux as my primary OS when I got to college in 2001, and stuck with it ever since. Throughout school, I’d follow the various bug trackers for software I was using and try to do my part filing bugs, doing a bit of triage, and periodically trying my hand at fixing bugs, though it was until I was getting out of school that I felt comfortable actually fixing bugs in some of the larger programs that I used on a daily basis. Part of that was a lack of confidence, part of that was a lack of skill and time to understand how interconnected some of these projects can be. Whatever the reasons, I’d persisted in these communities in the fringes, typically the local expert among those I know, but not deeply involved.

While I’ve never been as active as I want to be, the reasons for wanting to be involved has remained the same. It feels good contributing to an open source project. It’s exciting when a patch (or pull request these days) I’ve prepared gets accepted into a project. I like knowing that code I’ve written is being run across the globe, by a lot people, but it’s most thrilling knowing that another developer had seen the value of my contribution.

There is more than simply the desire to be recognized, however. Spending time in Academia, particularly now that my wife is working toward an eventual PhD, I’ve seen how Free Software can be used to help drive knowledge in ways that have little to do directly with computers. I’ve seen how the fields of scientific computing seem to have come further in the last six years or so, than they had for decades prior, in part due to the availability of free software in their field. My interest in Free Software began very much as an academic issue. By contributing and working toward the common good, taking the best ideas (or at least the best ideas right now), knowledge can increase much more quickly than if we operate in vacuums. The dynamic and exciting environments that people have often associated with start-up companies, has always existed around Free Software, because the structure affords people the freedom to come and go between projects to a certain extent, which, for many projects, can help to ensure that the project is always exciting.

More recently, my devotion to the ethos has been ramped up by a technology landscape that has become increasingly hostile. We’ve got laws that make circumventing even ignorant DRM a crime. We’ve got software and hardware providers actively working to restrict access to their devices, in ways all but guaranteed to stifle innovation. Even relatively open platforms, are being modifies to close them up awkwardly tight. I’m looking at you AT&T, with your removal of the “Third Party Sources” option on your Android handsets!

That’s the core reason I’m devoted to the ethos. Free Software doesn’t have anything to do with cost. Software is expensive to make, no matter how you slice it. It’s about the freedom to make mistakes. To do stupid things. But also to create amazing things. To go further than before. Sometimes you need to take a few steps back to be able to move forward, even if those steps back are the painful results of pretty bad mistakes. We need computing freedom for that world to exist, and while I’m not truly opposed to commercial software, I firmly believe that supporting Free Software, and it’s tenets, is the best way to keep us from being artificially crippled as we move forward.