Sometimes I think my only true talent is an uncanny ability to surround myself with talented people. One of those is a friend of mine who recently moved back to North Carolina from New York City, and to help celebrate that move, last week I invited a bunch of smart, intelligent and devilishly witty people over for a “Dos de Mayo” party.
Of course it was impossible not to talk “shop” at least part of the time, and I’m sure I held forth on open source at least a little. My friend Phil was listening, and he wrote down on his Blackberry the words “fauxpen source“.
I thought it was brilliant.
Now a Google search turns up a number of references to “fauxpen source” prior to Phil, but I’m willing to put it down as one of those independent discoveries, like Leibniz and Newton with calculus, and give him credit for it, especially since Phil spends little time in the software business, much less open source software, and it is doubtful he picked it up elsewhere.
The three people who read my blog know that I am pretty particular about the use of the term “open source”. The term was coined as a more business friendly alternative to “free software”, however many have tried to distance it even further by applying it, if not to commercial software, at least to commercial software business models.
Open source is more business friendly since the English word “free” is pretty loaded. The classic example is that it can mean free as in freedom (libre) as well as free as in beer (gratis). Dan Ariely devotes a whole chapter to “free” in his most excellent book Predictably Irrational, and since deploying open source software is not without cost (in either time, money or both) it can be misleading.
But I am hoping to take a page out of Carlo Daffara’s book and present a rather emotionless explanation for why open source software is free software, and it is wrong to imply otherwise.
Given that “open source software” is defined by the OSI’s Open Source Definition (OSD), which consists of ten criteria, and given that “free software” is defined by The Free Software Definition, which consists of four freedoms, I will attempt to map one onto the other. I expect it to be easier than mapping the integers onto the real numbers, but one never knows.
Before I get started, I want to point out the Introduction to the Open Source Definition, which states:
Open source doesn’t just mean access to the source code. The distribution terms of open-source software must comply with the following criteria
Note that it doesn’t say “should comply” or “it is suggested that it meet” but specifically uses the word “must”.
Freedom 0: The freedom to run the program, for any purpose.
The OSD focuses more on distribution issues than use, but the 6th criterion states “The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research.” I would say this is the same as Freedom 0.
Freedom 1: The freedom to study how the program works, and adapt it to your needs. Access to the source code is a precondition for this.
There are a couple of criteria in the OSD that map to this. The 2nd requires that the source code must be made available (“The program must include source code”), and the 3rd requires the ability to make derived works (“The license must allow modifications and derived works”).
Freedom 2: The freedom to redistribute copies so you can help your neighbor .
This is met by the very first criterion, Free Redistribution, which even includes the word “free”. Note that there is no altruistic language such as “help your neighbor” in the OSD, which also makes it more palatable for business interests.
Freedom 3: The freedom to improve the program, and release your improvements (and modified versions in general) to the public, so that the whole community benefits. Access to the source code is a precondition for this.
The Free Software Definition separates adapting code to one’s needs from distribution of those changes. It’s an important distinction, since the right to modify code for personal use is much different to the right to distribute those changes.
The OSD combines the two with criterion 3. The first phrase “must allow modifications and derived works” covers adaptation and the second phrase “must allow them to be distributed under the same terms as the license of the original software” covers distribution.
The OSD adds a large number of other requirements, which I think makes open source even more “free” than free software, since it specifically spells out additional freedoms. These criteria also are very business friendly, such as number 4 about the integrity of the author’s source code. Integrity is a huge part of any business, and it is one reason that while we encourage the use of the OpenNMS software by anyone, we strongly protect the OpenNMS trademark. The OSD allows a license that requires derivative works to carry a different name (we use trademark law to enforce this since the GPL does not have this provision).
This analysis shows that open source software is free software, and I welcome anyone to point out the flaws in my logic.
In practice, I think it is pretty easy to identify open/free versus commercial/non-free software. Where it gets difficult is in identifying open source vs. commercial software companies.
In the US it seems to be a growing trend for companies to adopt a “fauxpen source” business model – using the term open source to market their commercial software offerings by providing some of the code under an OSI-approved license, but basing their revenues on the distribution of software under commercial licenses. I claim that a successful company exists to maximize profit, and if that profit is based on commercial software it is disingenuous to label the company “open source”.
Commercial licenses violate a number of the OSD criteria, since one can’t freely distribute, modify, or sometimes even see the code. The fact that some of the code is available is irrelevant: both Google and Microsoft distribute thousands if not millions of lines of code each year under open licenses but neither company would label itself as “open source”.
Having read and re-read the Open Source Definition, I have to marvel at both its simplicity and completeness. It would be a shame to let a small but well-funded and vocal group of people pervert it to their own ends.
UPDATE: The original purpose of this post was to demonstrate that open source software is also free software, and that it is at odds with commercial software. So here is a syllogism that supports my conclusion:
Open source is free software.
Commercially licensed software is not free.
Therefore, if your business (main revenue source) is selling commercial software, you are not open source.
Does that help any?
There is a small error in your analysis. In Free Software Non-Free isn’t an option. In Open Source it can be. There are free licenses like the LGPL that allow Free Software to be used in combination with proprietary software. But there is no way to ever turn the code itself into a closed source product. In contrast some Open Source licenses like BSD or Apache allow to do that anytime you want to.
From a user point of view this distinction doesn’t make any difference (you can freely use the software anyway). From a developer point of view it does make a stark difference, because it differentiates if you want your code potentially end up in Windows or not (most of the original Microsoft TCP/IP stack was taken from BSD Unix, with no fixes given back to them).
I believe you misunderstood me. While I showed that open source software is free software in that it meets all of the criteria of the Free Software Definition, I never said they were equivalent. It is similar to the fact that all squares are also rectangles, but not all rectangles are squares.