Open source software refers to software released without the usual copyright restrictions. This means the developer/s who invented are happy for other people to use their software for their own purposes, adapt and develop it as they see fit. More often than not, open source software is free, too, making it the perfect solution for individuals and businesses alike.
Developers release open source software without restrictions into the public domain. This means anybody can inspect, study and modify the software’s ‘source code’, its building blocks, whether that’s to understand how it works, change it for their own purposes or make improvements for other users. Beyond this, a key characteristic of open source software is that users are allowed to distribute the software on, with or without changes they’ve made, to anybody they like. There’s therefore no “end product” when it comes to open source software – it’s constantly evolving as different users and developers collaborate from all over the world.
Examples of open source products such as WordPress (a content management system), Open Office, the internet browser Mozilla Firefox, Wikipedia, the GNU/Linux operating system and its derivative Android, an operating system for mobile devices.
This comprehensive guide takes you through all you need to know about open source software, in the following sections:
- What is open source software?
- Types of open source license
- Advantages of the open source model
- Disadvantages of the open source model
- Why make software open source?
- The history of open source
- Final thoughts & FAQ’s
What is open source software?
What specifically makes software open source is the license attached to it. Open source licenses, sometimes known as free software licenses, can be implicit or explicit. They are unique in that they grant users ample freedom over the product: specifically the freedom to alter and redistribute the software, which is something usually prohibited by copyright law. When a rights-holder chooses to remove these restrictions, they do so by using a free software licence or open source software license, meaning that users have free reign over the software without paying any fees to the original creator.
The opposite of open source software is proprietary software, where only the individual creator/s, or the business who created it, has the right to control or modify the source code. Examples of proprietary software include Microsoft Office and Adobe Photoshop – paying customers may use the software, but they may use it only for the purposes expressly permitted by the creator/s.
Open source software is often confused with freeware, but the two are very different. Freeware refers to software that users can download and use entirely for free, at no cost. However, they don’t have the right to change the source code.
The versatility of open source software means you can use it for almost anything. For businesses, OS software solutions can help you with accounting, customer relations management, enterprise resource management and even point of sale transactions. Many professions rely daily on OS software, such as photographers using video editing software and offices relying on LibreOffice. Less technical OS software includes many of the most popular video and music players.
Types of open source license
There is a range of open source licenses available to software creators. While they all follow the main principles and criteria of open source software, they differ slightly in the extent to which they allow users to modify the source code, and under which conditions. Some of the most popular licenses are:
- MIT license: Originating at MIT, this license permits users to modify original code with very few restrictions. It’s GPL compatible meaning that users can relicense MIT software as GPL software. The MIT license also allows users to relicense its software as proprietary software, which is how it differs from copyleft software licenses.
- GNU General Public license (GPL) 2.0./3.0.: Anyone who writes software code under GPL must release it as open source, too. Users must share the full source code and all rights to change and share all of the code.
- Apache license 2.0: This license has stricter rulers, particularly when it comes to redistribution. If you issue an Apache license, you can freely use, modify and share software code. If users want to redistribute derivative code, they must provide explicit statements to say that the files have been modified.
- Common Development and Distribution license 1.0 (CDDL-1.0): All users who own a CDDL can reproduce and distribute any original work or derivative work. However, they cannot then go on to copyright, trademark or make any patent changes. Developers must make any modified versions of the source code available under CDDL.
The final category is BSD licenses. The BSD license places fewer restrictions on its developers, though there’s disagreement over whether this makes the software freer or not.
The main difference with the BSD license is that users are allowed to use and manipulate the program’s source code, but they aren’t obliged to then share their modifications back to the community. This means they can keep any improvements for personal gain, and market the new product under a commercial license. Although this type of license affords the developer more freedom, many supporters of the open source philosophy feel this goes against the ethos of the initiative.
Open source Vs free licenses software
We often hear open source software used interchangeably with free license software. The two are mostly similar, although the OSS criteria issued by the Open Source Initiative came almost ten years after the free licence software, and places a greater emphasis on modifications to the software. A common misconception is that free license software or open source software refers to the price, and are therefore free. While many do happen to be free, it’s not a condition, and there are many paid OS software solutions.
Advantages of the open source model
Many people, both individuals and companies, prefer to use open source software over propriety or commercial software. There are a number of reasons for this, including:
- It’s predominantly free – estimations show that open source software collectively saves businesses almost £50 billion a year. Companies benefit from open sourcing their creations, as they can profit from the modifications, updates and improvements made by the world’s best programmers worldwide, without having to pay a penny.
- Versatility – using open source software means you aren’t locked into using a particular vendor’s system that only works with their other systems. You can adapt it to your needs and use it in conjunction with other vendors’ products.
- Security – a lot of people prefer working with open source software because of the transparency it offers. As the source is publicly accessible, thousands of programmers are continually studying, inspecting and reviewing the code. This means there’s far less room for error – somebody is bound to spot omissions or bugs and fix or remove them.
- Rapid evolution – Not only does software usually evolve faster when its open source, it also evolves faster. Not having to request permission from the original authors to modify software means that development happens more quickly.
- Community – open source software represents a philosophy. OSS inspires collaboration from a community of users and developers around the world to make the software the best it can be.
- Training – promoting this exchange of knowledge also makes the industry far more accessible to people looking to learn about coding and programming. Open source software provides a vast, ever-growing resource for programmers and coders, allowing far more people to become proficient software developers and innovators.
- Stability – it’s also often far more stable for a company to base their software and operations on open source software. As so many developers and programmers are constantly updating it in the public domain, there’s little risk that the software will stop being available, which makes it a reliable option for longer-term products.
Disadvantages of the open source model
While the benefits of open source software are considerable, there are a few drawbacks to consider:
- Not as ‘user-friendly’ – as there is no requirement to create a commercial product that will sell and generate money, open source software can tend to evolve more in line with developers’ wishes than the needs of the end-user. As such, the software is usually harder to use and less user-friendly, as developers pay less attention to the user interface.
- If you’re a small company basing your software on open source software, bear in mind that no one is required to help you if things go wrong. Open source software tends to rely on its community of users to respond to and fix problems. While there’s no shortage of help available in the wider community, you may have to pay the price for external support, and it may take longer than had you paid for software under a commercial license.
- Although having an open system means that there are many people identifying bugs and fixing them, it also means that malicious users can potentially view it and exploit any vulnerabilities.
Why make software open source?
Technology is continually evolving, updating and adapting to better fit our daily needs. Google’s innovative artificial intelligence engine, Tensorflow, is the technology behind its cutting-edge tools which recognise spoken words and search photos. Why, then, did Google make Tensorflow open source in 2015?
The simple answer is that more heads together equals more progress. They hoped that by opening up the table to other developers, they could create software better suited to their needs. More than 1,300 external developers have now worked on TensorFlow. This collaboration has meant that it’s now one of the standard frameworks used to develop AI applications, which will help Google’s own cloud-hosted AI services, thus completing the circle. By putting the code out in the open, Google has ensured that they can profit from better software which will continue to evolve.
Opening the software up to the public also provides good promotion. When Google released its TensorFlow, it sparked significant interest in the software, now used by the likes of Dropbox and Airbnb. All in all, contributing to open source software has mutual benefits for all the parties involved, making sure nobody misses out on the latest improvements.
The critical thing to remember is that each company manipulates the source code for their own uses. The idea isn’t to replicate and privatise the same design but to share base knowledge to create different solutions for differing purposes, at the same time benefitting from the experience, expertise and improvements made by others. The open-source development model encourages open collaboration, driven by peer production, benefitting millions of users worldwide.
The history of open source
When software was in its early youth, it was commonplace to share software and source code, particularly in universities or research organisations. However, in 1974, the U.S. Commission on New Technological Uses of Copyrighted Works (CONTU) declared software as copyrightable. Software, therefore, gained the same status as literary works, which kickstarted the licensing of software. From then on, purchasing software didn’t mean you could use the source code, or even see it, let alone manipulate it for your own uses or pass it on.
This change took away from the collaboration that many software developers had been enjoying. In 1983, a man named Richard Stallman released a free alternative to the popular operating system at the time, Unix, dubbing the free version GNU. GNU was an attempt to bring back open collaboration amongst developers, and he released his code under a GNU Public License, known as a GPL, which gave users the freedom to use the code.
The GPL was crucial in establishing a new culture of collaboration, as the license also stipulated that any derivatives of the original code must also remain under a GPL license, keeping the code firmly within the public domain. In the late 90s, many companies and programmers pushed a similar movement with greater stress on the business potential of sharing and collaborating on software code, adopting the term open source.
Final thoughts & FAQ’s
Whether you’re a new start-up, formidable enterprise, or just an individual, open source software can be an innovative, cost-effective solution for any of your online, PC or business needs. The collaborative ethos of OS software means users have access to the latest improvements, allowing even the smallest of businesses to integrate cutting edge software solutions without having to shell out for expensive proprietary software.
What is source code?
Source code essentially forms the basis of any programming. It’s plain text, human-readable programming which gives instructions to the computer. By inspecting software’s source code, you can learn about how it works. Developers can then use this source code to write more code and program a computer to perform other actions.
Several prominent programmers soon supported the initiative and followed Stallman’s example, one of the most notable being Linus Torvalds, the brains behind the Linux operating system. Linux provided the basis for Android, which today powers more than 86% of smartphones worldwide according to IDC. Its open source license means anybody can view, modify and share the code behind the vast majority of smartphones. It’s no surprise, then, that over 15,000 programmers worldwide are involved in maintaining Android.