Using free/libre software confers many advantages to the persons/organizations doing so, especially if these users are technical (like software companies for example). This article will discuss these advantages and dispel some of the myths floating around free/libre software.
Free software is software which respects your (the users") freedoms . It is commonly written as free/libre (or colloquially "free as in freedom not as in beer") to emphasize the fact that we"re not talking about price. Indeed, free software can be sold commercially - more about this shortly.
There are four essential software freedoms as defined by the Free Software Foundation which we"ll cover next and see why they are important for us as technologists.
"The freedom to run the program, for any purpose". Free software isn"t partisan to any idea. Software is just a tool and how you use it is your decision/responsibility/judgment call. In contrast, proprietary software frequently restricts how/when/where you can run it and there is no easy way to get a "let me do whatever I want" license.
Frequent restrictions in proprietary software include:
Such restrictions are without any good practical reason (other than them being a monopolistic practice to extract as much money as possible from the user) and severely distort the market landscape which should encourage competition. For example how can you judge which database vendor to choose if nobody is allowed to publish any benchmarks?
Needless to say that free software contains no such restrictions.
"The freedom to study how the program works and change it, so it does your computing as you wish". Access to the source code is a precondition for this. Source code is the ultimate source of truth about any software. Having the source code means that you can easily answer the most common questions which come up during the usage or integration of the software:
Sidenote: some proprietary vendors offer access to (part of) their source code, usually under very stringent conditions. This only addresses one of the software freedoms (and probably even that only partially - since vendors rarely give access to the complete source code and tools needed to build the system) and such software is still non-free.
"The freedom to redistribute copies so you can help your neighbor". Sharing the software is of benefit to everybody (in the long run):
This provision guarantees that (free) software doesn"t form a monopolistic cartel where you must always pay your dues (and probably the bigger your revenues get, the more money they will demand from you). A clear indication of the fact that proprietary software is not sustainable is the fact that the Internet runs on free software .
"The freedom to distribute copies of your modified versions to others". By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.
This freedom makes sure that others can step in when there is a market opportunity. If a proprietary product is discontinued you have no choice but stop using it (or use it without support and hope that it doesn"t break). If the original developer(s) of a free software product can"t or won"t continue its development, others can step in and provide continued support. Or even multiple persons/organizations can compete in offering support and/or development services.
Contrast this with proprietary software where vendors actively try to discourage others from providing support.
Having talked about the four freedoms which define "Free Software", let"s turn our attention to the advantages it provides.
Free software is transparent. You can check every claim which is being made about it. In contrast with proprietary software you need to rely on marketing materials and other sources produced or approved by the vendor.
Free software is also transparent about its future: because usually all development is done in public for free software, you can easily judge the level of activity and the speed with which issues are addressed / new features are implemented. If the project is no longer maintained, you will have ample warning about it getting out-of-date and various options to solve the problem. Compare this with proprietary software where the vendor can sunset a product on a whim giving no option but to migrate off of their solution.
With free software there is a sliding scale of support levels available vs. money invested. The usual possibilities for getting support when using free software are:
Because development is done in public, you can easily find contributors who might be interested in working for you. And you can judge their competence directly (based on how they contribute to the project / community) rather than having to use uncertain proxies like certifications.
Capitalism / markets produce the best results in environments where information is readily available to all the participants. Free software creates such an environment. Coupled with the near-zero cost of transporting information in today"s age, we get very quick evolution of projects.
It"s possible that you find a (free) software package which does 99% of what you need but the final 1% is missing. This being free software you can take the source code and add the final 1%. But even more, if you give your contributions back to the original projects, they will incorporate them and maintain it from then on. This means that if there are any major changes (like the API changes in v2 of the library for example), you don"t have to spend your time re-merging the changes - probably somebody else from the community will do it.
Keeping up to date with software licenses in notoriously hard to do. Failing to do so can result in lost productivity (why can"t I use the software? Oh, Bob is running it and we only have one license - but Bob is on a coffee break and I have to wait for him to return!) and even legal liability (are you sure you have a valid license for each and every copy of the software on the 100+ devices of your company?).
Free software in contrast means "simple licensing terms and you can be confident that you"re in compliance".
Last but not least, when using and contributing to free software you are part of a community. You interact with like-minded people. You collaborate with persons from all over the world. You have the opportunity to learn from the best!
Having covered the advantages of using / contributing to free software, here are a couple more facts about it:
Free software only asks you that you provide the option to your users to get the source code (in a format which can be used to reproduce the final working product). This means that you don"t need to give the source code to any random person asking for it, just to users, also:
While you don"t need to provide source code in any of the above cases, it is still a good idea to do so. Most businesses are not in the "software" business, they only use software to speed things up (for example the main value of a financial broker isn"t the software platform, but rather the negotiated deals it has with many market players). Giving the source code to your customers in such instances only assures them that their risk level is reduced and they will still come to you because they choose you primarily because of your business relations.
Free means Libre, "Free as in Freedom", not as price. Nothing in the free software licenses precludes you from selling the final product.