Free Software vs Open Source vs Freeware: What's the Difference?
Free Software vs Open Source vs Freeware: What's the Difference?
In this, a developer takes a look at the difference between the various types of software, and how developers can take advantage of each of them.
Join the DZone community and get the full member experience.Join For Free
In the software development industry, technical terms are often dropped here and there. While some people unknowingly use them interchangeably, some confuse their meanings altogether.
Free software, open source, freeware, and shareware are some of the most commonly confused software terms in the industry.
Kuzzmi, who has more than eight years of experience in the software development industry and currently teaches people how to build powerful web-based applications, says that “understanding the difference between the technical terminologies is important for making the right decisions when building your tech products.”
In this article, I’ll talk about the main differences between these terms.
Let me make this clear beforehand: the word 'free' in 'free software' emphasizes freedom, not price. That’s why, to avoid the ambiguity in the English language, sometimes free software is called libre software.
According to the Free Software Foundation (FSF), a non-profit organization that supports the development of free software, “free software is the software that grants the user the freedom to share, study, and modify it.” The FSF coined the term in the 1980s.
This type of software allows you to do anything you want with it, even improving the version and profiting from it.
The FSF asserts that a free software must adhere to the following four pillars of freedom (which are rights and not obligations):
- The freedom to deploy the software for any use case without any restrictions. For example, saying that the license of a program expires after 30 days makes it non-free.
- The freedom to study how the software works and modify it according to your needs and preferences.
- The freedom to freely re-distribute the software to assist someone in need. The redistribution can be done at a cost or at no cost.
- The freedom to enhance the performance of the software and release your enhancements for the community to benefit—both programmers and non-programmers. You can do this at a cost or at no cost.
The FSF emphasizes that free software is not limited to non-commercial use. A commercial program can allow users to indirectly access the above freedoms.
Additionally, as opposed to freeware, free software allows users to access the source code (because of the freedom to modify).
Any free software license should give users the ability to benefit from the four pillars of freedom. These licenses can either be protective (copyleft) licenses or non-protective licenses. Whereas the former upholds the rights to use, study, distribute, and modify the software, the latter allows for distribution with those rights scrapped off.
Here are three of the most popular type of licenses that define free software:
- The MIT (Massachusetts Institute of Technology) License: This is a permissive license that places limited restrictions on software reuse.
- The GNU General Public License v2: This copyleft license gives users the freedom to run, study, and make improvements to the software.
- The Apache License v2: This is a permissive license that mandates preservation of the copyright notice and disclaimer.
- The BSD Licenses: They are a set of non-copyleft licenses that gives minimal restrictions on the use and redistribution of the software.
A popular example of a free software that is completely freedom-respecting is the Linux operating system. An example of a distribution of a Linux package is Debian.
Open Source Software
Open source software has a close meaning to free software, although the two terms are not identical. Although both terminologies refer to a similar group of licenses and software, each term alludes to different underlying ideologies.
The Open Source Initiative (OSI), the non-profit organization that supports the development of open source software, asserts that any open source software must adhere to the following criteria:
- Free redistribution of the software.
- The source code should be publicly available.
- The software can be modified and distributed in a different format from the original software.
- The software should not discriminate against persons or groups.
- The software should not restrict the usage of other software.
Historically, the term free software came before open source. Although both terms have roots in supporting the idea of free software (right to use, study, share, and modify), their objectives and philosophies are different.
The term open source was introduced in the late 1990s in response to the limitations of free software. In fact, the OSI says that it coined the term to “educate and advocate for the superiority of an open development process.”
The organization adds that the term provides “a valuable way to engage with potential software users and developers, and convince them to create and improve source code by participating in an engaged community.”
Therefore, the term open source emphasizes on the practical benefits of “free software”: supporting collaboration on software development projects.
In other words, while open source is a development philosophy that is more business oriented, free software is a social and moral philosophy. That’s why the term open source is more palatable to the corporate world because it places less emphasis on freedom.
For example, while the Android mobile operating system is an open source software, it cannot be referred to as a free software because it does not respect all four pillars of freedom.
To minimize misunderstandings and avoid the terminology debate between free software and open source software, other terms such as FOSS (free and open source software) and FLOSS (free, libre, and open source software) may be used to describe the concepts.
Typically, freeware refers to a software that you can use without incurring any costs. Unlike open source software and free software, freeware offers minimal freedom to the end user.
Whereas it can be used free of charge, often modification, redistribution, or other improvements cannot be done without getting permission from the author.
As such, freeware is often shared without including its source code, which is atypical to open source software or free software.
Two of the most common types of freeware are Skype and Adobe Acrobat Reader. While both programs are free to use, their source codes are unavailable to the public.
Most developers usually market freeware as freemium or shareware with the intention of encouraging users to buy a more capable version.
Freemium refers to a program that is offered at no cost, but money (premium) is paid for extra, more capable features.
Shareware refers to a program that is initially available without any costs attached, and users are encouraged to distribute copies. However, that cost-free period usually lasts for a certain period; thereafter, a user is required to pay for continued use.
So, the next time you build your tech product — whether it’s a mobile game, a cryptocurrency trading bot, or a website — ensure that you use the right terminology to describe it.
For example, if you want to release your created program freely to the open source community, ensure you do sufficient research to understand the limitations and responsibilities of the licensing you select.
Which term are you going to use to describe your next software?
Please provide your comment below.
Opinions expressed by DZone contributors are their own.