In the first couple of posts on this site, including my semi-autobiography in the About Me section of the site, I have been dropping the phrase “open source” quite a bit. It has never really occurred to me until now that the vast majority of people reading this probably have no idea what that even means. What I decided to do was explain it, and then give my take on the whole concept by using an analogy.
Everything needs to have some background in order to be fully understood, and this is no exception, so I am going to try to fill you in as best as possible. When a programmer develops an application, he writes code to make the various functions work. Well, after he is done or when he wants to test it out, he must “compile” the code into a program that he can run. Compiling a program essentially take the human-readable code and converts it into machine language, which is really just 1’s and 0’s. Each command you type when you program corresponds to different bytes that your computer knows how to interpret, which is how the compiler works. Anyway, after compiling a program, the code that you wrote is not part of it in any way. The computer knows how to interpret it, but no other human can sit down and understand how your program works if he only has the compiled version.
Enter open and closed source. The difference is simple: open source programs not only include the program itself, but the “source code” (the code you actually wrote in developing the program). Closed source programs, in direct contrast, just include the program and do not include the code. Well, you now have the boring Dictionary definition of the two concepts. However, they really transcend their meanings into a whole new level, which is where the whole “open source movement” eventually comes in.
You see, distributing an open source program is not just about including the code. By giving your users the code, you are implicitly allowing them to modify it in any way, shape, or form they wish. In the lawyer-filled society we currently live in, someone was bound to translate this implicit understanding into explicit statements, which is where the GNU (whenever you see this acronym, just think open source… it is an organization that makes open source software) General Public License, or GPL for short, entered the picture in 1989. This document has evolved over the years, but the underlying principle remains the same: software distributed under the GPL may be used freely. This is how open source software enters a different plane entirely. It becomes a sort of symbol to freedom in the software world. So, not only does open source mean that software is free as in it costs nothing, but it is also free in the sense of free-use without limits. For example, you could download any open source software, change a couple colors of the program around and make a new name for it, and then redistribute that. Or you could of course completely revitalize it and then distribute it as a new breed of the original. The latter was how Mozilla Firefox came into being. A group of open source developers took the Netscape source code, improved it greatly, and then re-released it as Mozilla which has since grown into a very advanced software application.
This leads directly into the next concept of open source: a collaborative community. It is all about the community, which makes sense given the freedom aspect of open source. Let’s use an example. Program A is released in January by Joe. Mark is a talented programmer that is interested in Program A. He downloads it to his computer and runs it. He enjoys it but feels that Feature A could be implemented better. Mark then rewrites Feature A in the code, recompiles it, and sends the changed copy (with the changed code, of course) to Joe. If Joe likes what he sees, he then releases Program A Version 2 which contains Mark’s addition. There are entire projects that thrive on user contributions. This is why open source software becomes so good. It may not be as good as some professionally-developed application at first, but after time passes and many experts look at it from different angles and contribute their opinions, it evolves into a viable alternative to the professional application. In this way, open source becomes a very respectable business model.
This is where my analogy comes in. I have found that the concepts of America as a nation are directly related to the concepts of open source software. America began as a place to escape the religious persection, and as a way to start things in a new, potentially better way. When it first started, people doubted that it would ever work; it was essentially an experiment. Open source software began as an alternative to an Operating System known as Unix. The two main variations of it at the time (late 80’s), Berkley University’s BSD and AT&T’s Unix, cost a lot of money to purchase and implement. It was a powerful system, but it was so esoterically implemented and expensive to keep up with that someone saught an alternative. Just like Separatists from the Church of England looked for a new way in America, the fathers of open source looked to open source development. Their model was just as radical and unprecedented as the Great Migrations of early America.
Of course, just like America, open source quickly began to shine and become recognized as a huge competitor to the closed source world. The community aspect of open source development works primarily because there are many different viewpoints coming together to form a new, better whole. In America, the Anglo-Saxtons, Scots-Irish, Africans, etc. all came with diverse social and cultural views but over time they all coalesced into what became known as American culture. This new emergence is much like open source’s wonderful early advances.
Every good thing is challenged quite a bit though. Open source succeeded pretty quickly in defeating the Unix it was battling against. Linux, the open source alternative to Unix, was first released in 1991. By the mid-90’s, everyone that was using Unix before had changed to the new, open source, and free alternative. Businesses loved it because they saved money, and pioneering developers loved it because they could modify it to fit their needs. But their victory was short-lived because the most hulking closed source application ever to be released entered the scene — Windows, or more specifically for this period, Windows 95. With its graphical interface, it put shame to Linux’s faster but boring text-only interface. The general public had never really been introduced to computers… the personal computer concept was never really that big until this era. As this general public adopted Windows 95, the successes open source software and Linux had gained over Unix were now eclipsed by Windows’ success.
America had many bad times as well. After the starvation, etc. was dealt with and it was a fairly stable nation, the Revolutionary era and subsequent War of 1812 with Britain caused much problems. Moreso, however, was the Civil War, where the country was literally split in half. Just as Linux became eclipsed by Windows, America’s early successes were forgotten when north-versus-south hatred entered the picture. America, as we all know, eventually overcame the Civil War debacle and is now in another era of success, thanks to the huge improvements after the World Wars.
So, time was all that was necessary to heal the wound to America’s greatness. Well, open source software, I predict, will work in much the same way. Windows XP, and not 95, is the new beast. Linux, however, as well as most open source projects, have also improved, now containing comparable features to Windows as well as superior stability and security. No longer are they just for enterprises hoping to save money, Universities, and the scientific community. Linux and open source are a great alternative for the general public nowadays, and the number of people who realize this are increasing every day. A perfect example of a recent open source success is the Firefox web browser. It is constantly gaining market share and will most likely surpass Internet Explorer, the closed source, Windows alternative within a few years. Representing the best successes of open source, Firefox is fast, stable, secure, and free for all to use (and abuse). It is distributed under the GPL just like most other open source software.
In conclusion, America’s beginnings, hardships, and outcomes bear striking resemblance to the open source movement. Though the outcomes of the said movement have yet to be determined, they will hopefully follow in the footsteps of America and become an overwhelming success. Open source essentially represents the presence of American ideals in the software world, fighting off the tyranny of closed source and flaunting a Bill of Rights known as the GPL. Whether you use open source software of not, it is an important concept to understand since I believe it will be the future of computing. Just imagine a world where any program you want can be downloaded off the Internet for free, and, better yet, can be freely distributed by anyone to anyone for any purpose. That world is among us today, but until everyone adopts open source then the majority of people will remain in the darkness that results from the collosal beast known as closed source.