Open-source software (OSS) sounds almost too good to be true.
The term is used to describe 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 commercially developed software, where the source code is closely guarded and protected from prying eyes. Famous examples of OSS include Linux and Drupal, which are some of the biggest names in their respective fields.
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.
It normally begins with an idea for a new project, or an 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.
Despite the potential for bugs and poor compatibility, this early release is quickly improved by an online community who contact the development team to note any problems with 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.
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.
The Open Source Definition
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.
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 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.)
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
- Incremental changes see new features added regularly
- These features should have fewer unintended consequences, and it’s easier to roll the software back to an earlier state without losing much progress
- The peer-review system improves quality and functionality (as long as the team responds to feedback)
- As the software is free, it helps to level the playing field for smaller businesses and users by saving them time and money, and most open-source software is reliable thanks to the expertise of their volunteer developers
- 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
- Good relationships between the developers are very important – if they don’t get on, it’ll impact on the overall quality of the project
- Some applications are tricky for inexperienced users to get to grips with. 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. Fewer forum members and devs will also make it harder for new users that are struggling to use the software
- It’s easy to find abandoned projects and half-working software online. The dev may lose interest or move on to another project, spelling the end for frequent updates
- As the source code is freely available, hackers can potentially find vulnerabilities and leave backdoors for future exploits
- Many smaller open-source companies struggle to make money despite their products being used extensively
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.
- 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
- 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
Featured image by Florian Olivo