A Brief Intro to Open Source Software

It's hard to get online and on the internet without hearing about Open source software. It's harder yet to figure out what it is. On one side you hear how it's nothing less than the savior of man, and on the other side, you hear that it's the downfall. All these messages come from people who have some stake in the issue and nobody seems to be looking out for the most important person involved: you.

Well I'm here to tell you, this is a good thing. It's free stuff. And everyone likes free stuff. It's like the opposite of taxes.

What is Open Source Software, Anyway?

In order to understand what open source software is, you must first understand how software's made. Most commercial software, such as that used in PCs or embedded computers (like the ones all over the inside of your car), is constructed by writing instructions in a language that basically describes the problem and how to work on data.

That sounds completely like fluff, but that's exactly what it is. The only human element in writing software is thinking through problems and how to solve them. If, for example, you need to show someone a picture, you have to figure out how to work the screen and the hard drive that it's stored on. Then you just write it down in a very precise way.

Unfortunately, computer chips and humans don't really speak the same language. Where a human writes out words and punctuation to make the language, the computer does things at a much more basic level and can't really afford to translate things that we understand into its own commands. In most cases, the translation step takes a long time to complete, which is unacceptable in most situations. Worse yet, designing hardware to actually understand human readable code is very difficult and wasteful of silicon (money).

This human-readable language is known as "source code" or simply "source." Special programs, known as compilers, exist to translate this code into instructions that the chip can work on. In the end, it generates what most people know as "programs" or "executable files."

What's great about source code is that it can be used on lots of different types of computers that aren't PCs, like Macs or BlackBerries. Also, if you want it to do something slightly different than it's already doing, you can change it to suit your own will.

But it's usually not available. Instead, you're required to go to a store, like Best Buy, and give some people your money for a cardboard box with a little disk of plastic in it; sometimes lots of money. And you don't even get source code.

So why not?

Value

Source code is defended jealously by software companies. It represents a significant amount of time and money that the company has invested to pay programmers to write and test it. So instead of making it available to anyone to inspect, they only make available the final output, even if it isn't exactly what you want. Even if it doesn't work right.

This is an ownership model. The company now owns the complete rights to use that source code and they make money from in perpetuity. (Actually, copyright is 92 years, but since that's an optimistic lifespan, it's essentially forever.) The company invests money in the rights, then benefits from that as long as they can get people to buy their end product.

Service

Open source software takes a different route. The idea behind open source is that the source code is made freely available to anyone who wants it. They can download it and compile it and create the end product themselves.

Right about now, you might think there's something wrong - that some key piece is missing. How can anyone make money on this?

The answers are varied, but they all revolve around service. If you're the owner of the source, you're literally the most qualified person to give advice about it.

So this knowledge is now worth money; you sell your services. One way is to sell tech support. Another service to sell is by taking contracts to modify it: since you know the code best, you're also the best qualified to modify it for custom purposes. You can write and sell self-help books or other technical manuals and guides. In short, you're now selling your time instead of licensing your property for use.

Free

Sounds fantastic for the consumer, doesn't it? Maybe there really is such a thing as a free lunch. What does it REALLY cost? The reality is that it depends on how smart you are and how much you know about compiling and installing software.

The bottom line is that it costs you time. Now you have to manage all the problems you might encounter without any help at all.

Unless, of course, you want to give money to the people who wrote it. Then they'd be glad to help.

Here's a handy table to help you under stand the costs:

End User

Cost

HomGeekius

Freee!

HomSapiens

You might have to buy a book or pay some author to explain it to you.

It works out very well for people who know how computers really work inside, and marginally the same for people who would tend to buy software.

Trust

But who do we trust? Can we really trust all these starving grad students to not screw it up and cost you months of data when it erases your hard drive?

The answer is nobody. We can't trust any of them. We can't trust commercial software to get it right or even to be ethical about it, if some recent news is any indication. We can't trust a pack of grad students to not put dangerous hard-drive deleting code in their open source zombie shooter game. And nobody is going to guarantee that your software won't have a latent bug that will crash all the airplanes and power stations on December 31, 1900.

Instead of trust, though, we have another tool at our disposal: our eyes. We can read the code to see if they messed up. That's better than trust. It's like the public radio station having completely open books so their contributors can see where their money goes vs. trusting some aid agency to not use 90% of your contribution for beer and pizza.

In short, we can't really trust any of them. But in the case of open source, we don't have to trust anyone because we can check. And if you're in management and don't really understand this stuff, you can hire someone who does, leaving you free to make pretty Power Point slides (or "Presentation" slides if you're using the free OpenOffice.org suite).

This is all a great deal for the consumer, and even a greater deal if you're a HomGeekius and are able to get by without buying support or books and other stuff.

But it's really better than that.

The Big Club

The mere existence of open source software makes commercial software better. Look at one of the most famous pieces of open source software: Firefox. There's a good chance that you're using it right now. But where did it come from? The five minute story, without going into a long, tedious history, is that it arose from the ashes of Netscape.

Netscape was first. It was the best, but then Microsoft decided that it wanted to control the internet and it wrote Internet Explorer and gave it as part of Windows. That's even kind of like "free," except now you had to pay for it even if you never used Windows for anything except solitaire (like the guy in the next cubicle.)

And Microsoft crushed Netscape. Ground them out of existence and spat on the grave.

But Netscape got them back. In its last dying gasp, it gave away all the source code to the world. Netscape begat Mozilla. Mozilla begat Firefox.

If not for that final act of spite, Microsoft would have been able to rest and stop sinking millions of dollars into their Internet Explorer. Now they have to always stay two steps ahead of what people could get for free somewhere else, or rather in this case two steps behind.

A similar story lies behind OpenOffice.org: Sun released the source code of Sun Office to the world because it wasn't able to compete with Microsoft's Windows/Office combination with its UNIX operating system, Solaris running Sun Office. This act forced (and is still forcing) Microsoft to expend another ton of money to stay ahead of what can be had for free.

Open source software is now serving two purposes: It serves as a big club to keep strong software companies from crushing weaker ones, and it forces commercial software to constantly improve to stay ahead of what can be had for free.

Below is a list of the major players.

Expensive Stuff

Free Stuff

Windows

Linux

Internet Explorer (part of the cost of Windows)

Firefox

Microsoft Office

OpenOffice.org

Photoshop

GIMP

Illustrator

Inkscape or OpenOffice.org’s “Draw”


Super Growth

Finally, there is the growth factor. Consider the growth of the sum of human knowledge. Each generation of thinkers build on the base of all the previous thinkers. As this accumulates, we see an exponential growth in the scope of human knowledge.

Open Source Software has the same potential: With each generation of software, all the previous versions of source code are always available to build on. Instead of two dozen companies working to basically re-invent the same thing in their back-room labs, all the inventing done on a base of open source software code is done such that there is (theoretically) no duplication of effort.

The model that forces secrecy actually holds us back from what we could truly make the computers do.

Like be a personal slave bot. We all need one of those, I'm sure.


Building your own DVR and need to find out more about open source software? Check out more of our great articles!

Didn't find what you were looking for? Try searching our site, or post a new thread to our forums!

Category: 

Comments

Nickolas's picture

Excellent article expresing advanced knowledge through simple language. I am looking forward to see more articles written by Dennis Schmitz.

 regards