Open Source Software: A Yellow Brick Road for Software Development and Innovation
Open Source Software (OSS) is free and publically available computer software that enables the user to copy, modify and redistribute the code without paying royalties or fees to the owner. It differs from its counterpart, proprietary software (e.g. Microsoft Word), because the source code is made available to the user.
Source code is the code, or “programming language,” that computer programmers use to write software (e.g. C++, Java, Python, etc.). Source code is passed through a separate software program, known as a compiler, which translates the instructions into object code (the code that computers process and use to perform the user’s intended commands). Humans can read source code, but can seldom read and understand object code, which is presented in series of “0” and “1” (i.e. binary code).
So what’s the big deal about OSS?
OSS was initially developed as a way of facilitating the open development and improvement of software. By providing a free and open platform, OSS is constantly improving and undergoing bug fixes under the meticulous eyes of its users. In many instances, OSS rivals the value and reliability of commercially produced software. Today, more companies (e.g. Amazon and Google) are turning to OSS to drive not only their internal processes, but also their products. The implementation of OSS in a company’s software program can provide a host of benefits, including: speed up time to market; free up development resources for higher-value work; reduce costs (no license fees); and access to third-party improvements.
Not so fast…
It is not a stretch to think that, because OSS is “open” and “free,” a user can do whatever they would like with the OSS that they choose. However, each OSS comes with a license agreement that the user assents to when they use OSS. The terms of the license dictate how the user can use, modify and redistribute the OSS and their modifications. OSS licenses are typically categorized in three ways:
- Permissive – grants the user a broad license to use and modify the source code, and allows for implementation with proprietary software that can be licensed onwards. Examples include: Apache License 2.0, MIT License, and the Beer License.
- Restrictive – includes provisions and requirements restricting OSS modification, incorporation with proprietary software, and subsequent licensing. Examples include: GNU General Public License 3.0, and the Eclipse Public License.
- Hybrid – combines the features of restrictive and permissive licenses to allow for the merging of various licenses and usually requires the distribution of resulting source code. Examples include: the Artistic License and the Mozilla Public License 1.1.
OSS has ushered in a new era for software innovation, providing free access to reliable code that can be implemented across a spectrum of processes. A word to the wise, however, just because OSS is “free” and “open” should not justify reckless abandon when choosing of OSS for your project. As with anything that is accompanied by a contract, it is crucial to read and understand the accompanying OSS license before running off to change the world.
Been hearing about CRISPR lately and want some clarification? Read, The CRISPR Patent Battle and a Divergence from Patent Theory.
Written by Roger McLaughlin.