Wednesday, December 6, 2006

Open-Source vs. Closed-Source

---An Introduction---

So What is Open-Source?


Open-source refers to a kind of software whose source code is publically available. Under the GPL, everyone is free to read and edit the source code of open-source software. Often times, this type of software is available for free which makes sense since the program's source code is there for everyone to see anyways.

Examples of open-source software include:
- Linux
- Mozilla Firefox
- GNU Image Manipulation Program (GIMP)
- OpenOffice.org

What About Closed-Source?

As you may have imagined, closed-source software is the opposite of open-source. A program that falls under this category would have its source code hidden from the public's view. This is usually done so that corporations can sell their products without having to worry about other businesses using the same algorithms or similar code.

Examples of closed-source software include:
- Microsoft Windows
- Microsoft Internet Explorer
- Adobe Photoshop
- Microsoft Office


---The Struggle---

So What's the Whole Debate About?

Since this is a blog site after all, I'm sure many of you are presently using Internet Explorer to view this web page. Was that even a conscious choice on your part, or was it just the most convenient choice?

It's a given that PCs dominate the computer hardware industry and that most, if not all, of them are packed with Microsoft applications. For those of you with Windows running on your PCs (I'm assuming most of you are), I can predict with high precision that when you initially booted up your computer for the first time that there were at least these two icons on your desktop. The Recycle Bin is there for your deleted files and Internet Explorer for your web browsing needs.

You might be wondering what point I'm trying to make. Basically, the typical computer user is exposed to closed-source software at first because it's all there pre-installed and on your desktop, unlike open-source software. With a couple of clicks, you're on the Internet for the first time without really having to think about it. As a result of this initial exposure, the average user probably wouldn't want to go through the trouble of giving open-source software a try. On the contrary, I firmly believe that open-source software is superior on both the local scale and the global scale.


Making the Switch

There are several reasons why you should switch to using open-source software. From the local viewpoint, open-source software tends to be more efficient than the closed-source equivalents. One could reach this conclusion by analyzing the definition of open-source. With this programming ethic, anybody could read and edit code to his/her choosing. Therefore, this gives every user direct access to modify programs so that they better suit common needs. I'll demonstrate this with two examples.

This is a picture of the upcoming Windows Vista. The closed-source operating system (OS) certainly looks nice, but it does have its drawbacks, performance-wise. Steven Vaughan-Nichols of linux-watch.com was very disappointed with his experience with the new OS. He explains that the system specifications necessary to run this OS at a satisfactory rate is extremely unreasonable, which is no surprise considering the emphasis on graphics in the picture.

Linux handles its job as the OS differently. While its interface is simple and not as visually astounding as Vista's, Linux certainly gets it job done efficiently. Since being "pretty" is the least of Linux's concern, it can allocate those system resources to doing some other task. Furthermore, Linux is highly compatible with even low-end computers, something that can't be said for Vista. Therefore, hardware compatibility issues are almost nonexistent with Linux and PCs.

For my second example, I'll go back to comparing Firefox and Internet Explorer. Up until recently, Internet Explorer lacked the tab browsing feature while Firefox took full advantage of it. The prime feature of using tabs in web browsers is the ability to have more than 1 website open in the same window. IE6 and lower made users open new windows if they wanted to have more websites open. Tab browsing allows for less system resources to be used and therefore, that extra memory could be used to do something else.

To show you how much memory you could save, I did a quick experiment. In Firefox, I loaded four tabs with Yahoo.com, Wikipedia.org, Google.com, and Utexas.edu. The total memory consumption for Firefox was about 31.5 MB. Then for Internet Explorer, I loaded each of those same sites individually into their own windows. The final result showed me that each window takes up around 32 MB of memory. I also took a picture to show you what I saw. Two of the windows for Internet Explorer are not in the picture since they were so far down in the task manager list. As you can see, Internet Explorer takes up much more resources with every new window you open.

Firefox also has the advantage of extensions. Since Firefox is open-source, people are free to program their own add-ons and then make them available for the public to use. Some examples are Linkification (forces text links into hyperlinks) and Adblock Plus (not to be confused with a pop-up blocker). There are also people that program different themes that let you customize the look of your Firefox browser. For Internet Explorer, these options exist in a much more limited fashion, or they don't exist at all.

The Big Picture

Now you should be able to see how great open-source software compares with closed-source equivalents. However, there is a bigger concern in this controversy and it is pertinent that open-source comes out on top. It's not hard to recognize that software is constantly evolving, but how fast they're changing is the question.

Based on the facts, I strongly believe that open-source would be the best route for bringing about the most innovation in the fastest way. Since open-source allows anyone to make a contribution, there is much potential in what can be accomplished. Compare that to the select few who program closed-source software and never lets anyone else see the source code. The tab browsing example is relevant here. Tab browsing has been around for years, but it wasn't until less than 2 months ago that Microsoft opted to add that kind of support.

---Do Your Part!!---

Support open-source software. Don't simply just settle for what came with your computer. Remember that they are efficient and can take advantage of your system's resources. More importantly, they pave the road for more innovation. Even if you're not a programmer, other programmers won't be aware that they can contribute to an open-source project if no one uses the software. By using open-source software, you are assisting in spreading the word to others about it and thereby, increasing the potential of the outcome.