Free / Open Source Software : The Programmer’s Point Of View
There are many reasons to be interested in Free / Open Source Software (FOSS). Basically there are two kinds of reasons:
- Reasons for a user
- Reasons for a programmer
Of course, one should not forget that a programmer is also an user. The goal of this article is to explain a little the reasons that could explain that a programmer could be interested in open source, even in a world where a large place is given to money.
First, it is interesting to explain the term “Free / Open Source Software” (FOSS). This term combines two facts into one term about the software being considerate:
- It is free, in sense of freedom (and consequently often in sense of price too)
- It is Open Source (it meets criteria of the Open Source Definition)
In term of facts, the difference between the terms “free software” and “open source software” is often so subtle that most people wouldn’t be able to give a beginning of an explanation about it : most of the difference in the use of the terms is about philosophy.
However, this difference betweens the two terms does have its importance. Important figures of Free / Open Source Software have written about this and if you’re interested to understand, I would recommend this two links:
- Why “Open Source” misses the point of Free Software by Richard Stallman
- Goodbye, “free software”; hello, “open source” by Eric Raymond
If you don’t know very well who are these two key figures, I’d suggest some reading about them two : understanding their philosophy is a key.
In the rest of this article, I’ll simply refer to “Free / Open Source Software” by FOSS without indicating each time subtle (or not) differences between the two way of viewing the things. I’ll rather focus on what makes a big deal: the difference between FOSS and proprietary and closed software. I’ll try to focus on it from a programmer’s point of view (although FOSS is interesting for users too).
There are many reasons for a programmer to be interested in FOSS. These reasons concerns many different aspects about FOSS:
Freedom and Social Aspect:
As Richard Stallman explained it in the GNU Manifesto, it’s natural for humans to share what they can and it should remains natural for programmers (who are users too) to share programs, without any legal barrier. Introducing barriers to prevent humans to share what they can is neither natural nor desirable.
Right for programmers to make money:
Many points about that are covered in the GNU Manifesto too. Although Richard Stallman presented some solutions to solve what may seems first to be an intrinsic problem, he didn’t covered everything (the GNU Manifesto was written some time ago). In the facts, it seems that a lot of companies have found their way to gain money making free software. Here are some facts to consider:
- If you need to have software to do something and if you agree to pay to get a job done (ie a software to be written), in a lot of cases you don’t need the software to be closed. In fact it’s more interesting if the software is open, because every time you need you are able to choose who you want to work on it. This may be to fix bugs, to add new functionalities… Although you may prefer to use the services of the people who wrote the software (because you may appreciate their knowledge and competence), you are not too dependent of a company which may crash and don’t exist anymore, or who may have something else to do. So it may be interested for specific software buyers, i.e. people who are ready to spend money on software for their specific problems (i.e. not widespread software like office software).
- The software may be free and support paying : that is an important fact. And a company writing recognized high quality free software is likely to benefit from its recognition to provide support and/or other products.
- The software itself may not be the major point for people investing in its development. Google helped (and continues to help) developing Mozilla Firefox by providing money for its development. In exchange, the toolbar with search functionalities was a good way for Google to become more popular (which seemed to benefit to the users too). Google plan to make money was not based on the selling of a web browser, but on revenues generated by advertising near to search results. Google is both an example of company successful in the domain of growing fast and a company that helped a lot the development of FOSS.
- and there are many other points about it…
So companies are able to make money with free software, so it’s easily possible to pay programmers to do the job.
Recognition/Reputation:
Doing major contributions in FOSS is clearly a way of getting recognition. Whether this recognition is a goal in itself or is seen as a way to get new better opportunities to get money, a lot of programmer contributing to FOSS are driven by the hope of getting recognized, and this hope is often realistic: FOSS offers huge opportunities for that. It’s a more open field than some other ones totally unrelated to computers (becoming a recognized artist for example is not as simple…).
By the way I’d recommend another document : Producing Open Source Software (link to appropriate chapter but the whole is interesting) by Karl Fögel.
A way to learn:
The FOSS community being more open for programmers, it’s easier for programmers to get a chance to contribute in a way they will communicate with other people interested and learn a lot. That’s another important point too.
Receiving something and giving something:
That’s a fact: humans are more inclined to give something to other people who bring them something too (whether it is consciously perceived as an exchange or not). Programmers are humans too and are not an exception to this rule. In fact, even if they have no insurance to give a “gift” to people who have “given” them interesting or useful software before, they feel as they received something from the community and then give something back to the community.
Having a real interest in what you do:
That’s a fact: people who are really interested in what they do are likely to try to do their best to improve things in their field. This is not limited to software or computer science. Great mathematicians and physicists work in this way too. FOSS is just a far more appropriate way than closed software to contribute.
“The world is full of fascinating problems waiting to be solved.” and “No problem should ever have to be solved twice.”:
These sentences came from paragraph titles of an interesting document of Eric Raymond : How To Become A Hacker (Warning: if you think that an hacker is someones who breaks other’s computer, you’re totally wrong. Please read Eric’s document before showing any concerns about that).
By reading the two quoted sentences, it’s quite obvious that FOSS is just more appropriate for that. There is just less useless barrier with FOSS to reuse what has already been done when needed to do more, to use it as a way to do what has never been done before.
Is that all?
Clearly not! Above are some important points among what I perceived, there are many others. Reading all linked document may help you to think on the subject and you may enjoy that people may share something that is not code: interesting documents.










