When I was first got introduced to the free and open source software concept not so long ago the first impression I got about this concept was that the software produced ought to be freely distributed with their sources publicly available so that they come free of charge. Immediate question followed on my mind, as is the usual case for others being introduced to the concept as well, was, :”Well how are the guys in open source earn money?”.
Then I was told “Well people can provide support services for the users of software by means of customer service, training, consulting etc. and earn money from it.” So that settled the score for me of the open source business model though I was skeptic about the amount of returns companies would gain without the bulky initial earnings that would be had for the software itself as is the case for proprietary software. Anyway I didn’t give much thought about it afterwards though I got involved in some open source software projects. That was until I stumbled upon this lecture by Richard Stallman, the founder of Free Software movement. Only then I realized that this concept was based on a set profound philosophical ideologies and also the term itself in not immune to controversy.
Anyway here is what I learned from him on that lecture.
In his talk he describes about freedoms that he thinks that there should be present in the software usage for it to be conducive in building a “community of sharing and cooperation” to be built around it without the evils of the “moral dilemma” that users of proprietary software face. The “moral dilemma” he describes, “Think that you installed a copy righted software which you bought recently on your machine. So you wanted to show it off to your friend and he says that it is way too cool for you to have it alone after using it himself on your machine and he asks a copy of it for his usage. Right then you are being pushed in to a dilemma. You are tortured by the conflicting moral evils of not being able to help out a friend and being selfish if you reject his request based on the software copy rights, and on the other side violating the copy rights of the software if you were to give it to him, making you what they call a “pirate”.”
Four Freedoms of software
“Saving software users from this dilemma”, he says is what made him start the GNU project. So he goes on to say that he believes that there should be four freedoms that any software should offer to its users in order to serve the means of achieving this goal.
Freedom zero:The freedom to run the program as you wish.
The user has the choice of running software to fulfill his purposes, not any purpose pushed on to him by the developer or any other for that matter. So he should be able to setup and run the program the way he wants.
Freedom one: The freedom to study the source code and change it so that it does what you wish
This empowers the user to make the software work in a way which is optimally suited for his requirements. Even if the user is not a programmer he can still hire a knowledgeable professional to do the job. Nobody will object that since this freedom is granted with the software itself. And another alternative would be to let his requirements be known to the software developer community and if the community find it useful to a broader user base and the project itself then they will add or modify the features of the software according the request. This is achievable partly due to the below mentioned Freedom Three which allows software modifications without restrictions.
Freedom two:The freedom to help your neighbor.
You should be able to sell or give free of charge an exact copy of the software to any one requiring it. This saves the software user from the above “moral dilemma”. Another point worth noting is that in this regard it seems that he doesn’t object to making money out of selling the software itself. But the common sense implies that this would not be practically feasible since it will not hinder buyers of your software from giving away free copies of the software you are selling, bringing the price levels to zero. This I thought cleared up some misconception I had about the free software about the fact that they are called free because they are zero cost. In fact I realise now there are zero cost software that are not free according to this definition the best examples being Internet Explorer and early Netscape Navigator browsers. Both of them were free of charge but the source codes were not available to public so users had to depend on respective companies to do bug fixes and enhancements. The ambiguity of the word “Free” led the people to introduce a new phrase to describe the concept of free software as “Free as in free speech not in free beer”. So it was a matter of liberty, not price. The zero cost software is just a coincidental side effect.
Freedom three:The freedom to contribute to your community.
You should be able to do some modifications and be able to contribute it back to the community. This keeps the spirit of sharing alive and allowing the non programmer and programmer software users to reap the benefits of others works.
The officially coined term “Free Software” didn’t gain much popularity with the cooperate world due to the fact that “Free” was associated with lower grade, cheap or not being ethical. So the term “Open Source” was introduced describing another facet of the Free software. The marketing gimmick paid off big time and the cooperate acceptance levels of open source software is now much higher now than they used to be which Apache Web Server bears fine enough testimony.
A matter of perspective
No doubt this is just a one person’s perspective of what software should be and is not immune to criticism of other ideologies. It seems there are issues among different fractions of open source software developers about what open source software should be and is partly a matter of personal judgment. Any how the lecture left me with much broader perspective of what Free Software is.