Most people fall into two camps. They either have no idea what free or opensource software is, or they think they’re one and the same thing—and not without good reason.
The differences between them are extremely subtle, and many programs can be classified as both free and open source. So, let’s dive into the nuances between these two software categories.
Principles of free software
It all began in 1980 with Richard Stallman and his company’s Xerox 9700 printer. Back then, printer jams were an almost everyday occurrence. So, just as he had done with previous models, Stallman took it upon himself to create software that let users with waiting print jobs know when the device had thrown up an issue. There was just one problem. The manufacturer refused to provide the source code, making it impossible to modify the printer software.
This incident and the global shift towards the privatization of software (previously programmers had readily shared their code bases), led Stallman to establish the Free Software Foundation in 1985. Today, free software is officially defined by the foundation’s four fundamental freedoms:
- 0. The freedom to run the program as you wish, for any purpose.
- 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 necessary precondition for this.
- 2. The freedom to redistribute copies so you can help your neighbor.
- 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.
In essence, free software can be run, studied, distributed, and modified by users.
Principles of open source software
The not-for-profit OSI was founded in 1998 and protects and promotes the use of non-proprietary software. The distribution terms of open-source software must comply with the following criteria:
- Free redistribution: The license shall not restrict any party from selling or giving away the software.
- Source code: The program must include source code and must allow distribution in source code as well as compiled form.
- Derivative works: The license must allow modifications and derived works and must allow them to be distributed under the same terms as the license of the original software.
- Integrity of author source code: The license may restrict source-code from being distributed in modified form only if the license allows the distribution of “patch files” with the source code for the purpose of modifying the program at build time.
- No discrimination against persons or groups: The license must not discriminate against any person or group of persons.
- No discrimination against fields of endeavor: The license must not restrict anyone from making use of the program in a specific field of endeavor.
- License distribution: The rights attached to the program must apply to all to whom the program is redistributed without the need for execution of an additional license by those parties.
- License must not be specific to a product: The rights attached to the program must not depend on the program’s being part of a particular software distribution
- License must not restrict other software: The license must not place restrictions on other software that is distributed along with the licensed software.
- License must be technology-neutral: No provision of the license may be predicated on any individual technology or style of interface.
Is there really any difference between them?
The key difference between them is that free software is based on a philosophy (giving power to the user), while open source software is more utility focused and gives more power to the developer. The latter is particularly attractive for businesses since the development and maintenance load is shared with a community beyond the company.
Free licenses tend towards copyleft. This means that any derivative works created must be released under the same license. However, some open source licenses are little laxer and even allow derivative software to be privatized.
What’s more, the fact that open source licenses may restrict source code from being distributed in modified form (OSI Principle No. 4) could be seen to conflict with the Free Software Foundation’s third fundamental freedom.
But can you make any money with free or open source software?
The terms ‘free’ and ‘open source’ refer to terms of access as opposed to monetary cost. That said, the vast majority of free or open source programs are made available to users free of charge. This is by no means a hard and fast rule though.
It is possible to sell open source licenses, although most companies tend to find other indirect ways of making money from their software. These include maintenance, additional services and features, and advertising.
- Red Hat is a company that develops Linux for servers, offering a paid service that includes support and maintenance.
- Arduino sells programmable boards where both software and hardware are free.
- Mozilla Firefox makes money by setting a certain default search engine and search bar (Google, Yahoo, Bing, etc.).
- If a company wants to add functionality to a program and lacks the technical capacity to do so, they can hire a developer to implement these changes.
- Telegram is a totally free app that currently runs entirely on donations. However, the developers haven’t ruled out adding extra paid features in the future.
The role of community shouldn’t be underestimated when it comes to free and open source software either. If ongoing support is provided then development and continuous improvement costs are often considerably reduced.