Friday, March 11, 2011

"Free software" and "Open source"

There are two terms used almost interchangeably, "free software" and "open source" that are frequently used to describe systems like operating systems built upon the GNU and Linux projects, Apache, Firefox, and other tools you're familiar with. Indeed, sometimes you'll see the term "FOSS" (Free and Open Source Software) used to describe these projects. These are actually terms that carry quite a bit of baggage, so here's a quick primer as to what they mean and why they exist.

Let's start with free software. Not to be confused with freeware, free software is software licensed under conditions that recognise the freedom to exchange information. The person most often associated with the term "Free software" is Richard Stallman, an information activist (to coin a term) who was concerned when the computer industry, starting in the mid seventies, started a concerted effort to hide how its software was built and prevent people from modifying their software to better suit their needs.

Stallman was concerned because the hiding of information in this way severely restricted his freedom. Famously, he discovered problems with a program to manage a printer, a printer driver, and wanted to adapt that printer driver so it would do the work he needed it to do, but Stallman was unable to because the creator of the driver refused to share the details of how it was written, what it did, and how to drive the printer in other ways.

Stallman's contribution to free software are significant, and arguably the movement would not have happened without him. He coined the term "free software", created an organization called the Free Software Foundation to promote it, and started a major software project called GNU to develop an operating system that would be built according to the free software principles.  When people talk of "Linux", they usually (though not always) are talking of the GNU operating system, but with the Linux "kernel" - a kernel is a program that manages the running programs on  a computer behind the scenes, managing resources and ensuring they all get what they need to run. Had it not been for Stallman, systems like Ubuntu would probably not exist.

Unfortunately, any movement that has an ideological basis has internal arguments, and many attracted to free software had political issues, varying from personality conflicts to different ideas about how to ensure free software was successful. Concerned also that the political, rather than practical, approach the Free Software Foundation had towards promoting free software, a group came together and came to the conclusion that the right thing to do was to promote the practical value of a development model that produces free software, and to create a new term, "open source", that, it was felt, would better sum up what that model was. "Free software", it was said, is ambiguous, especially in the English language where "Free" can mean both "Liberty" and "At no cost."

While many in the newly minted open source movement felt, strongly, that their goals were the same as the free software movement, and that terms like "open source" and "free software" were synonymous, others were not so sure. Noting that the open source movement was focussed on promoting the benefits of the development model to businesses, rather than the moral issues concerning using secrecy and copyright laws to prevent people from building upon existing ideas, the two camps ended up splitting. Ironically, the open source movement, that had been born partially out of a desire to eschew "politics", became fairly riven with internal politics, resulting in the resignation of key members and a fairly stagnant organisation since. That said, the term "open source" is, today, more popular than the term "free software", and the argument that software should be developed in an open fashion because it's a better model is infinitely easier to put than one based upon the morality of information sharing against information hiding.

There are certainly differences between the two movements. But you could see it in the same way as, say, the issues with oil usage. One group of people is arguing strongly that America should reduce its dependence upon oil because it undermines our national security. Another group is arguing in favor of reduced oil usage because it has severe environmental issues. And yet another group is arguing for reduced oil usage because the supply of oil cannot keep up with increasing demand. All three have different viewpoints, and the groups don't necessarily overlap in terms of core beliefs, but all three come to the same conclusion about what the end result should be.

So it is with free software and open source. Free software advocates believe that people should have the right to use the information they have, and that more information is better. Open source advocates believe that you can produce better software if you can build upon the work of others and share your ideas. Both movements, via arguably different paths, come to the same conclusion, that software should be free to modify and share.

No comments:

Post a Comment