Through the glazed-over eyes of friends and family, past that painful look of well-intended but feigned interest, I can clearly see a fundamental lack of understanding about this free software I’m constantly going on about. I’ve always been the frugal type, so I think they just assume I choose it for the price. Ironically, I would happily pay for the free software programs I use daily, they just happen to come at no cost. And anyway, I DO pay.. just not to ACME Software Company for the yearly subscription. I go straight to the donation links of developers who write awesome code and pay them directly. It makes someone’s day, feels way
better than hitting “BUY” at the neighborhood app store, and costs only what I feel it’s worth. Some days that’s a little, other days it’s more.
Returning to the reason for this essay, I decided to fix this disconnect and explain to those around me where the passion for using and sharing free software comes from. That decision turned into an open letter, which turned into this post. It was surprisingly difficult to distill the essence of a passion that has so many sides, and a winding road brought me to the conclusions herein. As with any other discipline, programming has endless details abound that only interest the initiated (hence blogs), and I only wanted to talk about why I
think it’s so important for other people
to use free software, so I had to triple-distill my logic. I’ll provide a bit of background first, then explain what I mean. Free vs Free
- Most people get “free”. If I say, “go download Firefox, it’s free”, you understand that you won’t have to run your credit card to get the download. However, in software licensing there’s another kind of free
that’s more difficult to grasp at first. The romance languages have different words for each type of free
, “gratis” for free as in you got something of value without paying for it, and “libre” for free as in liberty or the opposite of being locked up. This is reflected in the naming of open source programs like LibreOffice
and many others. In the software world, when you hear “free as in beer”, it means gratis. When you hear “free as in speech” or “free as in freedom”, it means libre. This distinction is important to understand because a computer program can be free to download, but not free at all in terms of studying its code or recycling it into another program (a good example being the freeware application Adobe Reader).
We are unable to study the workings of many major computer programs because the code is copyrighted and kept secret like the baked bean recipe only that dog knows (will he reveal it?). This kind of proprietary licensing scheme grants the user the right to use the program (through the ubiquitous EULA
), but not the right to see the code or even own the program - ownership stays with the developer while you just use it. Conversely, for each open source computer program written and published, software developers choose a license that covers what can and cannot be done with the code. There are several dozen free and open source licenses
to choose from, each defining a different set of rules (or complete lack of rules) regarding how that code can be re-used. Some restrict the re-use of the software, while others
don’t. Incidentally, software can also be dedicated to the Public domain
in lieu of being licensed at all.
In the late 1980s, the first open source licenses started to appear. The one that broke ground and led to the abundant collection of high-quality, open source programs available today is the Gnu General Public License ( GPL
). What made this licensing approach revolutionary at the time is that it granted users of a computer program the rights laid out in the Free Software Definition
(the ability to use, study, change and redistribute the software) while requiring derivative works to be licensed under the same terms. This is known as a copyleft
license and is considered “protective” because it preserves the rights in derivative works. This license ensures that a developer’s code won’t get locked up in someone else’s alternatively re-licensed release of the original code. Using this license let’s the developer share her code without worry that it will be used against her wishes down the road. The freedom to code without this worry started a software development rush that continues to this day. The results of this rush are a testament to the skill and tenacity of open source developers, and their fruits are proof that the open development model is a superior one.
Known as "permissive", there are also open sources licenses that don’t have such restrictions. The BSD license
is a prime example of a permissive license. These licenses grant the user the right re-use the code in any program, even a proprietary one. For this reason, large companies will target code released under BSD-style licenses for re-use in proprietary software they have no intention of opening up. In recent years, legal challenges have been successfully leveled against companies for re-using software in violation of the GPL. This has resulted in a renewed and long-deserved respect for the terms of the GPL, and nowadays more companies are complying out of the gate when releasing new software (or just using BSD-licensed code). So Why Use Free Software?
- Returning again to the point here (and aware that opinions differ), I strongly believe that developing and releasing code into the open for peer review results in software of a higher quality, that runs faster, more safely and securely, with less problems, getting quicker bug fixes and providing more respect for user privacy than anything in the proprietary world. Indeed, both Apple and Google, who can easily afford their own in-house software development, instead chose to build their respective mobile platforms on top of existing open source operating systems: Linux
for Android and the BSD-derived Darwin
for iOS. If it’s good enough for them, I think we can make it work on your desktop to read email, play music, video chat with friends, push office docs around, use the web with all the popular plugins, edit images, shop, bank, etc, etc.