Open-source software (OSS) sounds almost too good to be true.
The term is used to describe computer software and products that can be adapted and implemented for free, giving full access to the source code for anyone to use and modify.
This is in stark contrast to commercial software (or closed source software), where developers closely guard the source code protect it from prying eyes. Famous examples of OSS include Linux, Android and Drupal, which are some of the biggest names in their respective fields.
(Drupal is a popular content management framework used by websites like eBay and Whitehouse.gov, while Linux is a popular alternative operating system.)
Here’s everything you need to know about OSS, from how the software is developed, to attitudes towards open-source software in the tech industry.
How the open-source model works
OSS is typically developed by teams of volunteers. This can be anyone from individual programmers to large companies, improving the software organically.
For example, Github is a community and task management platform for developers where they can collaborate on open source projects by fixing bugs and contributing code. This allows people to develop their skills and learn from other developers.
Open source projects normally begin with a new idea, or additional functionality or capability for an existing OSS component. The idea is quickly formed into a prototype, and the software is released as soon as it runs. It’s a powerful system to prioritise projects for the benefit of society, and there are already many open source projects that help the non-profit world such as Khan Academy or the MIT Open Agriculture Initiative.
Despite the potential for bugs and poor compatibility, this early release is quickly improved by an online community, who liaise with the development team to note any problems with the open-source code and the software. This development cycle continues until the latest release is stable, with further work taking place to improve the quality of the code in the long-term.
There are also companies such as Red Hat that specialise in open source technology, and they build and support open source products.
The open source software must have the appropriate license that complies with open source definition and is approved by OSI such as the GNU General Public License (GPL).
The open-source movement
The open-source movement began as a direct response to copyrighted technology and proprietary software which was beginning to become more commonplace during the late 1970’s and early 80’s; technology and software was typically incredibly expensive, locking many potential users out unless they coughed up the extra cash.
For software specifically, the mass collaborative GNU Project was started by MIT programmer Richard Stallman in 1983.
But Stallman was more interested in the concept of “free software” than “open source”, which led to cracks in the community by the late 1990’s.
Free vs open-source software
Stallman argues that “open-source” and “free software” mean entirely different things.
“When we call software “free,” we mean that it respects the users’ essential freedoms: the freedom to run it, to study and change it, and to redistribute copies with or without changes. This is a matter of freedom, not price, so think of “free speech,” not “free beer.”
He thinks of open-source as being the least ethical of the two, because “free software” is more concerned about notions of freedom, while open-source is focused on practicality instead of principles.
While both terms are used interchangeably, ‘free software’ advocates tend to have a problem with proprietary software, while the open-source movement is happy to co-exist with paid alternatives. It might not sound like a massive difference, but it leads to different end goals, and they also have different rules for classification.
Open-source software generally conforms to the Open Source Definition, while free software goes by the ‘four freedoms’. The point is, open-source software and free software might sound like they’re the same thing, but each group wants to make it clear that they’re separate entities.
Essentially, both free and open-source software allow the open source community to have access to the source code in order to study, alter and add onto it. However, free software such as LibreOffice will be available to be used by everyone (which the free software movement think is the end user’s right), whereas an open-source program can be used commercially, such as WordPress. For example, Linux operating system is both open source and free (FOSS), making it customisable.
The Open Source Definition
The Open-Source Definition is a list of criteria written by the Open Source Initiative that software must abide by in order to be called open-source, and get the certification mark.
They have ten rules:
- Free Redistribution – No parties are restricted from selling or giving away a component.
- Source Code – There must be an easy means of obtaining the source code.
- Derived Works – The license must allow modifications and derived works.
- Integrity of The Author’s Source Code – “The license must explicitly permit distribution of software built from modified source code.”
- No Discrimination Against Persons or Groups – Anyone should be able to use it.
- No Discrimination Against Fields of Endeavor – It can’t discriminate against any person or group making use of the software, no matter what they’re using it for.
- Distribution of License – The rights to the program apply to all “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 program rights can’t be specific to a “particular software distribution”.
- License Must Not Restrict Other Software – The license can’t place restrictions on other software, such as making other programs open-source if they’re built for commercial use.
- License Must Be Technology-Neutral – The license must allow for any individual technology or interface.
Open-source advocate Coraline Ada Ehmke also produced the Contributor Covenant in 2014; this works as a code of conduct for open-source projects, and it’s used by over 200,000 organisations, including Creative Commons and Google.
For those who are curious, Open Source Institute (OSI) keeps an extensive list of open source software licenses.
Examples of OSS
The open-source software development method has been used to create some of the most successful products and services that are available online. In fact, the internet itself was built thanks to the work of open-source developers.
For example, the majority of HTTPS (developed under Apache Web Server Project) websites use OpenSSL for the Transport Layer Security (TLS) and Secure Sockets Layer (SSL) protocols. (In other words, OpenSSL provides internet security and cryptography for many web servers.)
WordPress is an accessible platform used to power thousands of websites and blogs. It’s been used to create over 30% of all websites on the web, from TechCrunch to Unicef UK.
PHP is a popular scripting language that is ideal for web development. It’s used by 79% of all of the websites surveyed by W3Techs.
And Mozilla’s Firefox web browser is still going strong 16 years after its initial release. They controlled 32% of the market in 2009, and it’s still used by nearly 10% of internet users a decade later.
Advantages and disadvantages of OSS
Advantages
- Incremental changes see new features added regularly.
- The peer-review system improves quality and functionality (as long as the team responds to feedback!)
- It helps to level the playing field for smaller businesses and users, by saving them time and money.
- The speed of the development cycle should lead to faster builds.
- Security is arguably tighter than proprietary software, as any bugs are dealt with as soon as they’re found by members of the community.
Disadvantages
- Functionality tends to be at the forefront of development, which can impact on the overall user experience.
- You can also face compatibility issues if you don’t have specialised drivers needed to run the software.
- Smaller projects can fail, due to a lack of user-generated feedback or the devs losing interest.
- As the source code is freely available, hackers can potentially find vulnerabilities and leave backdoors for future exploits.
Attitudes to open-source software in the tech industry
Former Microsoft CEO Steve Ballmer expressed his distrust for the Linux OS on multiple occasions when he was at the helm of the tech giant in the early 2000’s, calling it a “cancer”. A few years later in 2005, Bill Gates said free software developers were “a new type of communist” when asked to comment on the possibility of sharing source codes and patents.
Gates’ philanthropy obviously didn’t extend to the software he sold at the time, although Microsoft eventually gave up on their efforts to sue Linux for patent infringement in 2018, and joined the Open Invention Network soon after.
But is OSS really a “cancer” made by communists? Of course not – Ballmer and Gates were most likely worried about losing out on potential market share and revenue. And they may have had a point, as the expensive set of MS Office tools were eventually replicated and given away for free by OpenOffice, releasing Windows users from the stranglehold of software licences.
Elon Musk tried a different tactic when he shared Tesla’s electric car patent portfolio openly in 2014, hoping to expand the market quickly in an effort to fight climate change. It’s the ideal example to show how sharing software can work for the common good. He shared his thoughts on the Tesla blog;
“We believe that Tesla, other companies making electric cars, and the world would all benefit from a common, rapidly-evolving technology platform.
Technology leadership is not defined by patents, which history has repeatedly shown to be small protection indeed against a determined competitor, but rather by the ability of a company to attract and motivate the world’s most talented engineers. We believe that applying the open source philosophy to our patents will strengthen rather than diminish Tesla’s position in this regard.”
It shows a different way of thinking, and one that could help the open-source movement to pick up steam in coming years.
Here’s a list of links to additional resources if you’d like to learn more about OSS.
Organisations
- Apache Software Foundation – providing organisational, legal and financial support to OSS projects
- Eclipse Foundation – hosts a large community with hundreds of open-source projects
- Free Software Foundation – on a mission to defend users’ freedom and rights
- Linux Foundation – the organisation behind the world’s largest open-source project
- Software Freedom Conservancy – promoting, improving and developing free, libre and open-source software
- Mozilla – fighting for an open and accessible internet
Books
- The Open Source Definition, Open Sources: Voices from the Open Source Revolution, (1999) Anthology
- The Cathedral & The Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary (1999) Eric S. Raymond
- Free As In Freedom (2002) Richard Stallman