Ready to Start Your Career?
June 24, 2018
What is Open-Source Software?
June 24, 2018
With the never-ending releases of web applications and tools like Internet browsers, browser add-ons, and file-sharing systems, you may have heard the term “open source” get tossed around a lot. But what exactly does open source mean, and how does it compare to another popular term, “freeware”? More importantly, how does the “open source” or “freeware” status of an application impact developers and users of these programs? Here’s a brief overview of what an open-source application is, how it compares to its counterparts, and the kinds of open-source licensing and open-source applications currently in the market.
Open Source DefinitionMany who are familiar with the open-source concept generally define open-source software (OSS) as computer software that includes its source code in its distribution to users. However, the official definition of OSS established by the Open Source Initiative (OSI), a head authority on OSS, is much more comprehensive. To be classified as open-source, a software program must satisfy 10 criteria according to the OSI:
- Free Redistribution – The software’s open-source license does not limit or forbid users’ abilities to sell or share the software as part of another software application that contains programs from other various sources. The license does not stipulate payments of royalties or other fees with the sale of the software.
- Source Code – Many of the software programs for sale in the market are offered in a ready-to-launch format that only includes compiled code, which is program code that that has been translated from the original source code into a form that a computer can understand and execute, which is binary code in nature. Programs that only include this compiled, ready-to-launch version of code are usually “closed-source” software applications. The second criterion of the OSS definition requires the software to not only allow distribution of the compiled code, but also of the source code, which must be included with the software package. The source code must be made publicly available within reasonable cost, ideally for free via Internet download. The source code must also not be deliberately obscured in any way.
- Derived Works – The OSS license must permit modifications and derived works, also allowing those changes and works to be distributed under the same conditions as those of the original software license.
- Author Source Code Integrity – The license may limit the source code from being disseminated in altered form only if it permits the distribution of patch files with the source code so that the program can be modified at build time. The license must also explicitly allow distribution of the software that was built from the modified source code and may stipulate that derived works go by names or version numbers different from those of the original software.
- No Individual/Group Discrimination – The license is forbidden from discriminating against any type of individual or group of individuals.
- No Field Discrimination – The license cannot limit any person from using the software program in any type of field or industry.
- License Distribution – The rights associated with the software program must apply to everyone to whom the program is redistributed, requiring no need for the implementation of an additional license by the parties receiving redistribution.
- No Product Specificity – The rights that come with the software program must not rely on the program being a component of a certain software distribution. If the program is derived from the distribution and is used or disseminated within that program’s license terms, then all parties receiving the redistributed program version should receive the same rights as those given in conjunction with the original distribution.
- No Restriction of Other Software – The license must place no restrictions on other software that is disseminated with the licensed software.
- Technology-Neutral License – No conditions in the OSS license may be affirmed based upon any particular technology or interface style.
Open-Source Software vs. Commercial/Proprietary SoftwareMost consumers are familiar with mainstream applications like Microsoft Word and Adobe Photoshop, which are examples of commercial software programs. These programs contain proprietary code that is private intellectual property, making the code closed source so that the source code is not available to the public. These commercial programs also require purchase. With open-sourced software, on the other hand, the source code is readily available, and any users who access it can make improvements, fix bugs, or modify the source code to create a customized version of the software for their own purposes. With this open-source feature, some argue that OSS programs are superior to closed-source alternatives because users are constantly sharing, testing, and fixing the open-source programs, which makes them more secure because those fixes can eliminate security vulnerabilities. Moreover, many agree that there’s less of a chance of an OSS program becoming unavailable, since the software is accessible in the public domain. Proprietary software, being private, is solely controlled by its creators or designated corporate parties, who can discontinue their software products at any time. Also, much of OSS is free, but there are some that have costs like support fees. One example is Red Hat software, which is essentially the open-source Linux software but with the addition of technical support. Valuing the availability of technical support, Red Hat users pay a fee to use the software instead of downloading the plain original Linux software that comes with no fees or costs.
Open-Source Software vs. Free SoftwareCommon points of confusion among users or consumers in general are the differences between open-source software, free software, and freeware, as well as what is meant by the word “free.” When it comes to open-source software and free software, the two are essentially the same thing and are both “free” in the sense that users of these types of software are free to use, share, and modify the source code according to their preferences. The difference between the two comes down to philosophical beliefs and messaging. Unlike open-source, which focuses on practical benefits and reasons for promoting source code distribution like cost-effectiveness for businesses and the learning opportunities it can provide, free software emphasizes the ethical soundness of the freedom that OSS gives to users to study, learn, and share source code without code and reproductive restrictions like those that come with proprietary software.Also, set apart from both “open-source” and “free software” is “freeware.” Unlike the “free” in open-source and free software, the “free” in freeware actually refers to a software program that is available to users at no monetary cost.
Common Types of OSS LicensesThe OSI approves open-source licenses with terms that satisfy the definition of open-source software based on the 10 OSI criteria. Although the licenses must all share the similarity of complying with the OSI’s definition for OSS, they can differ from each other with various conditions for modification of the software, depending upon the developers’ or project’s preferences and needs for the software program. Here are some popular licenses that programmers opt for in an open-source project:
- GNU General Public License (GPL) – This license is available in multiple versions, and one key feature of this license is that it requires users who modify an open-source application and distribute a derivative work to also distribute the source code for that derivative work.
- BSD License – One notable feature of the BSD license is that, unlike with the GPL, users can use the source code of a program under the BSD license in another software program without disclosing any software modifications they made back to the public.
- MIT License – This license has been especially popular on GitHub, a hosting service primarily used for computer code that provides access control and collaboration tools. Under an MIT license, users can use, reproduce, change, distribute, sublicense, and sell copies of an open-source software application without limitations and free of charge, and they can grant the same permission to other users as long as the license’s copyright and permission notices are included in all the copies or significant portions of the software.
Examples of Open-Source Software
- Android – The development of the Android open-source operating system (AOSP) was and is still led by Google. This operating system is used by many phone manufacturers such as Samsung and Google itself on smartphone devices, but many manufacturers modify the source code to create customized versions of the software that are closed-source or partially open-source.
- Mozilla Firefox – First released in 2002, Mozilla Firefox is a free and open-source web browser that is available on BSD, Linux, Mac, and Windows operating systems.
- PHP – PHP, or Hypertext Preprocessor, is a server-side scripting language that is open-source and similar to C. Used heavily in web development, one popular place where PHP is utilized is on the website platform WordPress.