Monday, April 14, 2008

Open Source Revolution

I did a story on open source biology and one of the scientists I spoke to
attributed open source philosophy to such things as animal breeding and seed
sharing. I was floored by the comparison. These are fundamental pegs of
civilization, thousands of years old. What does the IT industry and their open
source revolution have to do with animal breeding and why did it take the
information age to name this all encompassing aspect of society?

In truth, animal breeding and seed sharing had a name before the computer era.
They were often referred to as "the commons." So the real question is, how did
computer programming become part of the commons and why did they give it a
unique name?

In a compact sentence open source programs are: "Any software whose code is
available for users to look at and modify freely." This is a very glossed over
definition, but for now it will help us understand exactly what open source is
and how it works.

Everything on your computer has a code. Computers read these as a series of 1's
and 0's. Humans use translating tools to read and write code using C+ or C++ and
so on. Since every application on your computer has a different code, think of
each program as a tiny little invention. As such they are subject to
intellectual property rights.

In the late 90's it was estimated that 90% of programming was "in-house."
Meaning they weren't used in products "sold separately," but just made things
run smoother in a corporate office. You know that resident computer science
major who is a programmer in your office, that's what he does. Yes, he does have
a use. Let's imagine that at some point different programmers started talking to
each other and the conversation went something like this.

Dramatization

Programmer 1: Man, I'd really like to know what the code is to this
miscellaneous program. I think I could make it run faster and better thereby
increasing productivity for my colleagues.

Programmer 2: Too bad. That program is owned by company X, and I don't think
they are going to share. You either need to pay royalty fees or just move on.
Programmer 1: Oh man, now I have to write the same program from scratch. While I
might solve problems currently overlooked in this version of the program, I'm
sure to make my own mistakes.


Programmer 2: Alas, our fate in the world is sealed. If only there was a way
programmers could collaborate with each other.

End Scene

Alright, so I was never good with realistic dialogue. But hopefully this flushes
out why open source began with computer programmers and grew from there. For a
more true to life and in depth history of how open source communities first
developed I would suggest looking through the Open Source Initiative project.
Before any history lesson, however, there are more concepts needed to understand
what open source is, how it applies to programs that are not 'in-house' and why
many consider it a better method of programming.

The 'open' in open source means free, but not necessarily cheap. Confused? Start
by realizing that there are two notions of free. First there is free speech or
'liberty' as the French call it. Then there are things like free beer or items
that are given away at no cost. When an open source community says the code of a
program is free, what they mean is that you are at liberty to use and modify the
code as you wish. Often open source software is freeware too, so you can
download it at no cost, but this is not a requirement, just an added bonus. The
first misconception about open source is that it's anti-capitalist, when in
reality there are marketing methods to open source products and a person who
creates an open source program even gets to keep propriety. So how does it work?
Let's say I create a decent Web browser. I'm selling the product and making
decent money. I also release the code under a basic open source licensing
agreement. You, being a brilliant programmer, look at the code I released and
analyze it like a cook would a recipe. After all, before a cook can improve on a
recipe, he needs the ingredients first. Soon you find a way to make the browser
more effecient. Once you change the code, the modified program is your
propriety. You too can go into business selling your own, improved Web browser.
The only requirement is that you too must release your modified code under an
open source agreement. This is part of the condition of using my initial
released code. In this way software programs evolve beyond the original creators
control, constantly improving under fair and monetarily motivated competition.

Think of open source as a working example of the phrase "two heads are better
than one." As a result of so many heads the final product is often better,
cheaper and more secure. Open source operating systems like Linux (a play on
words between the traditional Unix operating software and Linus, the original
creators name) are notorious for being more secure from hackers. The second a
bug compromises an open source program's security thousands of eyes have access
to the program code and can find a way to fix it. They then submit the patch
back to the open source community that is governing that software, and the
glitch is fixed. Often these contributors don't even ask for compensation. They
do it out of the kindness of their heart and for bragging rights (name
recognition is often given).

A code that is not open to the public has to rely on programmers hired by the
owner to fix a hack. To broach a Microsoft browser a hacker only has to outsmart
a few dozen people, not the entire open source world. The broad resources for
open source projects make them incredibly difficult to penetrate. Programmers
from all over the world, speaking several languages, are a constant vigil.

Not only is the final product often more secure, better, and cheaper, but it is,
in some sense owned by an entire community. Anyone can grab the code and modify
it themselves. They can resubmit this code to the creator for kicks, to feel as
if they are a part of something, keep it as their own personal computer
knick-knack, or even go into business for themselves. A beautiful example of
open source community in action is the Firefox Web browser.

Aside from the incredibly strong design, excellent adblocking and ease of use,
Firefox can boast something that few other products have, an automatic
subculture of loyal customers. Thousands of people have contributed to the code
for Firefox. It is their collective 'baby.' They want to see it succeed. It is
rare for a product to take a full page add out in the New York Times and not get
blackballed. But because the add was an open source project, paid for by those
who support Firefox, people were excited to turn the page and see the giant
flaming fox logo (and possibly their name). This was not a corporate
advertisement, it was their advertisement. See the spin that open source puts on
marketing. Now Firefox has a percentage of the Web browser market formally
dominated by Internet Explorer, a less robust program that is more susceptible
to hacks.

In the agricultural days when a farmer had a good harvest he would take the best
seeds and share them with other farmers. The idea was that if they lost all
their crops next year at least their neighbors would still have a good strong
seed to barrow. Farmers would let their best male animals impregnate the females
of a neighbor's farm too. Why not? The favor could be returned one day and was
important for their livelihood. Today, we have moved beyond organic, slow and
sloppy evolution. We control the IT evolution with our own programs, destined by
our own minds. But this does not mean that the evolution can continue without
the freedom to exchange information. Open source gives programmers the freedom
to consciously create the future of software, hardware and more. Unless
programmers have access to a code they cannot improve upon it and this is the
promise of open source. Even more exciting, open source is finding its way into
other areas of our lives too. Everything from how we create definitions -- using
open source encyclopedias -- to how we conduct experiments with open source
biology projects like BIOS. The future is open

No comments: