EDITING BOARD
RO
EN
×
▼ BROWSE ISSUES ▼
Issue 24

Advantages of using Free software

Attila-Mihaly Balazs
Software Panther @ Synapp.io
PROGRAMMING

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.

What is 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.

Freedom 0

"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:

  • the number of instances of the software you can run at any one time
  • the number of machines you can install the software on (even if they aren"t running concurrently)
  • the number of times you can reinstall the software (after reinstalling your machine for example)
  • the number of CPU cores / amount of memory the program can take advantage of
  • running benchmarks / performance tests against the software

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.

Freedom 1

"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:

  • is the software capable of doing X?
  • how can I ask the software to do X?
  • why aren"t my steps achieving the desired results?
  • Compared to this proprietary software only offers meek alternatives:
  • you can read the documentation - but documentation has various levels of correctness and freshness. Source code is the ultimate documentation!
  • you can contact support - besides being costly there is a turn-around time of one day at least. Source code is right there when you need it
  • you can reverse engineer the product - if you have the right tools and expertise. Also, doing so is time consuming and potentially illegal in many jurisdictions

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.

Freedom 2

"The freedom to redistribute copies so you can help your neighbor". Sharing the software is of benefit to everybody (in the long run):

  • more people learn how to use the software (thus making them more valuable as employees)
  • the barriers are removed from innovators

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 .

Freedom 3

"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.

Advantages

Having talked about the four freedoms which define "Free Software", let"s turn our attention to the advantages it provides.

Transparency

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.

Suitable level of support

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:

  • searching on the Internet - free software tends to have a much more technical user base which frequently documents the solutions to commonly encountered problems. There is a much bigger chance of finding the solution by searching the Internet when using Free Software compared to proprietary solutions
  • asking for help on the projects mailing list / forum - free software is created by dedicated and enthusiastic people and they can help you much better than the first level support provided by software vendors. Plus, this is still free
  • you can hire one of the developers part-time or full-time - if there are multiple developers, you can take your pick
  • you can hire a company which provides support for the product - again, the license allows for competition in this space, so for popular projects there will be multiple options to choose from

Easy to find knowledgeable people

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.

It is a truly capitalist endeavour

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.

You can offload maintenance

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.

Simplified license management

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".

Being part of a community

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!

Facts

Having covered the advantages of using / contributing to free software, here are a couple more facts about it:

You don"t have to give your source code to everyone

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:

  • if you are using code under the LGPL and incorporate it into a larger system (for example you use a LGPL licensed library) you only need to provide source code for the modifications done to the library, not the entire system
  • if you are using GPL licensed code but it isn"t vital to the functioning of the system (it is a plugin for example), you only need to provide source for any modifications done to it, not the entire system
  • if you are using GPL licensed code to create your product but don"t ship that code with the final binary (for example you use GCC to compile your source code), you do not need to provide source code to your product
  • if you are using GPL licensed code internally and you are shipping the result over the network (you have some kind of SaaS offering for example), you do not need to provide the source code. You only need to give the source code to the person actually running the binary, which in this case is you.

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 software can be sold

Free means Libre, "Free as in Freedom", not as price. Nothing in the free software licenses precludes you from selling the final product.

Conference

Sponsors

  • comply advantage
  • ntt data
  • 3PillarGlobal
  • Betfair
  • Telenav
  • Accenture
  • Siemens
  • Bosch
  • FlowTraders
  • MHP
  • Connatix
  • UIPatj
  • MetroSystems
  • Globant
  • Colors in projects