Saturday, November 27, 2004

Why Open Source?

I had a conversation recently where someone challenged me to defend my interest in open source software, which I cheekily referred to as a "fever." The person asking was also a proponent of FOSS, and I wasn't any more interested in giving him a trite answer than he was in hearing one. I dug deep, rooted around in a pile of cliches that I immediately tossed aside, and came up empty. In the end I punted with some inarticulate babble about openness and how it betters "the community." I was right in what I said, but it was a poor argument that wouldn't have convinced someone sitting on the fence, let alone someone planted firmly in the other pasture. So I've got some thinking to do and some answers to come up with for the next time I find myself in this position.

Where do I fit?

I'm not much of a coder; my ability to produce cool code widgets, or even root out bugs in other people's code, is so wanting that I dare not even start. And so much of what the FOSS community is asking for help with is coding and related tasks that there's very little space for someone like me to contribute. Of course, you ask immediately, "what can someone like you do?" And I have a hard time articulating that, too.

As someone who's been using computers since 1980, wading through a variety of software from MagicWindow on the Apple //e to the GIMP on my SUSE laptop, I have some sense of what works in a user interface and what doesn't. Also, as someone who has made a career out of implementing enterprise class software (you know, the stuff that gets business done in a data center rather than "cool stuff" like network snooping utilities and filesystem managers), I have some sense of what integration means beyond knowing whether or not all the components can "speak" XML. But what does that all mean to the open source software world? Where do I fit in? My ego is sure that there's value in what I know. But how do we (my ego and I) present what that is in a manner that's convincing? Furthermore, how do I put it into practice? I sense a challenge.

Partial Answer

But the point of this post was to delve into the depths of why open source software is a good idea. The knee-jerk responses are that "information wants to be free" and "you can't have security without being able to see the code." But how many of us really look under the covers of Mozilla to see how it works? I know I don't, and I even mentioned that once. And, looking at that Slashdot post, I now remember why open source is a good idea:
"The biggest thing, though, is the openness. I don't read C code well enough to be able to delve into the bowells of the kernel or the GUI, or even modestly complex applications and have a chance of knowing what's going on. But there are people who can, and I know where to look to find out what they think. There's a certain safety that I feel when I run Linux that I don't feel when I run Windows. It's public safety, and it's maintained by the neighborhood watch."

So, there's the answer, or at least part of it. I'm sure there's more. So, tell me, why do you think open source software is a good idea?

5 comments:

Anonymous said...

- because you don't have to pay for it

- because you can improve on something without having to research/write it from scratch

- because you don't have to code a project by yourself, you can start with some ideas and people to get a head start

- because you can get some of the best educated people to review/revise the code without hiring them

- because if you wrote each piece of software from scratch, in the dark, you'd never learn how smart and fast the general world of computer science was moving, and never be able to take advantage of it.

- because not every bit of creativity needs to be capital-based. people contribute for many reasons, but the idea of making working examples of smart ideas - available for free - further mankind's public knowledge more than "new market items"

- because the more commoditized software becomes, the more a market must push to innovate.

- because if you can read and improve code, why not? it's a public forum for code reuse. this is exactly what any progammer, or group of them, tries to do: improve quality, efficiency.

- because it feels foolish to pay for something that's from a free idea - and has been built. would you pay me just to learn how to make a paper airplane?

mugnyte said...

JD, your skills would probably be best served by studying the interaction of users and FOSS. These studies, where the matchup between a business problem and it's FOSS solution can be outlined, are invaluable. Then, going the distance, designing a solution or organized set of gaps for a project would be excellent. This takes a person who can debate the relative merits with the programmers later, since they're going to prioritize it differently.

Also, the famed "UI" issues that seem to plague FOSS could be studied as well. These are more difficult to quantify, since *nix applications - i believe - do not have to dumb down to an appliance level to be useful. Linux especially likes having this small barrier to entry as a rite of passage.

Anonymous said...

'Cause releasing a better alternative as Free Software is the best way to piss off commercial assholes. ;) It's like saying "Because of your greed, kid, you screwed it up that bad that now someone has to fix it. Here you are, fixed and working, free of charge. And next time something breaks, leave it open so someone smarter than you can fix it if you can't."
Next time they release something as proprietary they will think twice before crippling some feature "for commercial reasons".

Anonymous said...

I scraped the paint job on my father's car once. A few weeks later he said "I fixed the paint on my car". Now, he works in an office and has no time to muck around with his car, so how did he fix the paint? Simple: He took the car to someone and gave him some cash.

Why am I telling you this? Because in that sense, everyone can code. Now, the point of FOSS (at least one of the points) is that anyone can change it, and this is exactly what it means: If you're not satisfied with something you're running, you get someone who can make it better in exchange for (money|services|lunch). That's what's great about FOSS.

You may not think it's worthwhile to pay for a developer's time to fix something stupid, but someday you might work in an office with a hundred others who use the same program. Or even better, manage one. That's when it starts to shine.

Anonymous said...

Because if the original author dies, disappears, or otherwise stops supporting the product the way you want, then you can support it yourself, or hire someone else to do so. (Whether you consider the expense to be worthwhile is a separate question, but at least it's possible in principle.)

For non-OSS, this is considerably more limited. Some things can be done just by observing the surface aspects of the software, but other things require you to be able to look under the hood. Without source code, you're stuck looking at the binary code, which is (a) several orders of magnitude more difficult and (b) possibly subject to prohibitions on reverse engineering.