A few days ago, Richard Stallman published an article on Wired titled “Why Free Software Is More Important Now Than Ever Before“. He raises some interesting points in his typical high and mighty flair, about how open source (or as he would rather – free software) could help prevent some of the widespread online spying that has been revealed recently.
This post spawned multiple online debates, which typically devolved into “free software” vs. “open source” debates, or pro and against Richard Stallman (RMS for short).
I think it’s fair to say that “open source” is the predominant term used when talking about this category of software as a whole. And most software developers I know, offline and online gravitate towards permissive licenses, or at least – are not religious about their licensing choices.
A short recap for those not familiar with the differences (which include most non-technical people – more on that below) -
- “Open source” is a term describing software for which the code is made available for studying, modification and redistribution.
- The Free Software Definition includes the above rights but also adds several requirements, specifically with licensing choices and interoperability (between different licenses in the code).
So why has “open source” became the de facto term and the more popular concept over “free software”?
The Problems With Free Software
1. The ambiguity of the name
First, let’s start with the most obvious problem free software as a term has – ambiguity. The “free” part of “free software” refers to freedom – as in, you are free to use it and the code as you wish, and not pricing – i.e, not zero cost software.
This ambiguity has haunted free software since its inception, and today people still make that mistake. This problem is acknowledged by the Free Software Foundation, which they try to address by publishing a more precise definition in a 2000+ word article on the topic.
The vast majority of people will never read that article.
As such, free software will often be misconstrued as software which has zero costs – which users definitely want, but is not the intention behind free software / open source. This misunderstanding often makes it harder for open-source companies to become profitable because of the expectations it sets for the user.
2. The restrictiveness of the licenses
The free software movement maintains and advocates the usage of the GNU GPL license family. Those licenses are characterized compared to other open-source licenses as being copyleft – a word play on the word copyright, which gives additional rights to the users (as opposed to copyright which grants rights to the author). Copyleft licensed software requires that the source be made available to end-user.
This requirement is a two edged sword – on one hand, it benefits end-user to have access to the code and the rights to modify and distribute it, but on the other hand it makes it difficult to create commercial software that incorporates GPL licensed code.
GPL licenses are considered “viral” in that sense – the inclusion of GPL code in your software product requires you to release the entire codebase as GPL if you distribute it (as binaries or otherwise), with certain exceptions . This means that anyone can build your product from the source, and sell / distribute it themselves – making it hard to create traditional closed-source software that incorporates GPL code (which is by intent).
This is the main contention point between free software and open source supporters – The former advocating for an ideal, Utopian state, while the latter supporting a more pragmatic approach to software development.
An interesting side effect of copyleft, is that companies that publish an open-source product for free (cost) as a part of their business strategy (by providing services / premium products on top of the free version), would typically publish it as GPL for those exact reasons. They use the restrictiveness of the GPL licenses to encourage users of the free version to upgrade to paid one if they want to build commercial products with it, and to avoid competitors using their code to build closed, commercial alternatives to their free product (since it must remain GPL).
In fact, this model is the one we recommend to developers on Binpress who are worried that people would use their “free” versions (in pricing) to create competing commercial solutions to their products.
3. A social movement instead of a development methodology
Free software sees open source code as more than a way to develop and distribute software – they see it as a social and ethical choice for the betterment of society.
For the Open Source movement, the issue of whether software should be open source is a practical question, not an ethical one. As one person put it, “Open source is a development methodology; free software is a social movement.” For the Open Source movement, non-free software is a suboptimal solution. For the Free Software movement, non-free software is a social problem and free software is the solution.
This sounds great as a political agenda. However, for most developers, the topic of developing software and how they do it is a practical issue and not an ideological one. Most people are not interested in mixing social movements in their professional lives and many cannot afford to, as they develop software for a living.
Is this an imperfect state? it might be, depending on your perspective, but it is reality. Software development is a huge industry, and for most business use-cases, permissive licenses are more appropriate, for pragmatic, not social aspects.
A good problem to have
The fact that we are having this discussion shows how far open-source has come.
We are huge fans of open-source and we believe the “free” part of it really should stand for “freedom” and not “pricing”, while not restricting the developer’s options. The goal should be creating better software more efficiently, and open-source can play a huge part in that.
Many companies today are creating amazing value for users with open-source products – companies such as RedHat, MySQL, GitHub, Cloudera, Phonegap (now part of Adobe) and many others. We love hearing about success stories such as this one about Sidekiq and how the developer was able to generate significant revenue from an open-core model and there are a few of those stories coming out of our marketplace as well, which we will be sharing with you soon.
If you have such a story you want to share with us, please let us know in the comments below!
 There are certain exceptions to the viral aspects of GPL, that allow the inclusion of GPL in a codebase code without having an effect on the license of the rest of the code. This includes the Java classpath exception – which allows Java applications to be released with different licenses despite Java itself being GPL, and variations of GPL that are more permissive such the Lesser GPL license.