Introduction to Open Source / Free Software philosophy

2011-02-27

Open Source is more than having access to the source code, and Free Software is more than getting it for free - but just what is it? :)

There are several definitions [note A] but it can be summarized in four basic principles:

Applications that matches these 4 principles are free software/open source. Applications that do not match any of these 4 principles are proprietary (you can also find "privative" and "non-free").

We can deduce a few immediate consequences: it can be used commercially (P0); the user cannot be denied a specific use (P0 - e.g. Oracle could not forbid people from publishing benchmark results as it currently does [note B]); spyware and trojans are much more difficult to hide (P1); copies can be made at any price (P2 - but nobody can forbid people from distributing cheaper or gratis copies).
Point (3) is quite interesting, because this fosters collaboration and team work, resulting in a win-win situation (you share yours improvements with other contributors, and you get other contributors improvements as well).

So what about the "source"? The "source code" (see wikipedia) is a requirement for points 1 and 3. It is strictly necessary for studying or improving an application. Without the source code, an application is essentially a black box - what ex-RedHat's CEO Bob Young called "a car with the hood welded shut".

Of course, the user may not have the technical skills to the changes directly - but (s)he can hire a programmer to do the job, or even team up with other users to share the cost. The difference with proprietary applications is that users can choose any programmer or company - not only the original author.
Also, skilled people may inspect the source code and warn all other users if they find a security or privacy issue. By analogy, not everybody is an accountant, yet it's important that State accounts are made public.

A simple access to the source code is not enough though: it comes with a copyright license. There are lots of licenses, in 2 big families.
Permissive licenses (such as the Modified BSD and the Apache Software License) match the 4 points above, but derived versions may be non-free. This means there's a risk that a person or company turn an open source project into a proprietary one. For instance, IBM HTTP Server is proprietary and derived from the open source Apache HTTP Server [note C]. Other examples include the X11 window system (X11 license) and the Symphony framework (MIT license).
Copyleft licenses (such as the GNU GPL and the Mozilla Public License) also match the 4 points above, and derived versions must remain open source. For instance, the GCC / GNU Compiler Collection, which is one reason why Apple's "Objective C" addition to GCC was made open source [note D]. Let's also name the Linux kernel (GPL), Firefox (GPL/LGPL/MPL tri-license) and the Drupal CMS (GPL).

Once you have the source code for an application and the freedoms to use, modify and redistribute it, this application is truly open source / free software with its benefits of sustainability, security and free market.


Notes:

[A] The most well-known definitions are:

[B] See:

[C] IBM HTTP / Apache Server - "Unlike Apache, IBM does not ship the source code for the IBM HTTP Server"

[D] Copyleft: Pragmatic Idealism - GNU Project

Copyright (C) 2011 Sylvain Beucler
Copying and distribution of the file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved.