What is open source?
What is open source software and how do vendors make their money? We answer your questions
These days, it's sadly rare for any branch of the tech industry to be considered noble or altruistic. There is one area, however, where this is still very much the case, and that is the field of open source software.
Open source, as the name suggests, is a field of software development in which the source code for tools, projects and programs is made freely available to download, modify and share.
The biggest effect of that is that open source software is free to use, with no restrictions on how you do so. This makes it very attractive for cash-strapped startups, among others. However, one of the other - and more important - elements of open source is that, because the code is publicly available, anyone can tweak it. As a result, a thriving community has developed around open source software, with countless developers collaborating on projects and sharing ideas.
Open source components have crept into virtually every piece of technology on the planet, whether it's the Linux operating systems which power data centres and cloud services, the Android software behind some of the world's best phones, or enterprise development tools like Puppet, Jenkins and Chef.
There are issues with open source development, most notably a much steeper learning curve, with developers who perhaps might not have as much experience as seasoned veterans facing a high barrier. As a result, many individuals involved in these projects are highly technically-minded with a substantial body of work behind them.
The main driving factor behind open source is the idea that as development projects are enhanced and accelerated, the wider the pool of people involved is, with developers of varying skills and abilities contributing their own expertise and experience.
These principles of co-operation often involving developers across the globe deciding to work in tandem naturally lend each developer the opportunity to work on an area they are most comfortable in. This code, meanwhile, is shared among a community, and edited by many at the same time.
In open source projects, the complete source code is shared publicly usually via code-sharing platforms like GitHub allowing anyone to examine it and make changes. A by-product of this is that it's impossible to charge money for the software in question, as anyone can download and implement the project's code. On the other hand, the benefit is that you can get feedback, assistance and collaboration from a much wider pool than if you were developing as part of a standard team, meaning you can get better results in a much shorter timeframe.
Although allowing so many people to interfere with the source code may be seen as risky, allowing additional scrutiny in the form of an extra pair of eyes - or often enough, several pairs of eyes - boosts the chances of flagging up any bugs. Moreover, open source software lends itself to tighter security, in light of the additional help at hand to shape it or process any problems.
The cooperative nature of open source projects can often produce better end results, with experts pooling their energy, time, resources and insights to produce a better outcome. Having people from different industries with different sets of skills gives open source projects the blend of diversified skills, talent and experience that other projects might lack.
We have seen open source technologies used as the backbone for everything from office software, like word processors and image editors, to whole operating systems and server platforms.
The other benefit of open source code (depending on your view) is that it is completely free and can be downloaded and compiled by anyone. Open source programmes and technologies lack the high licensing fees slapped on products built by proprietary vendors. This helps widen the pool and makes such tools accessible to more people.
The history of open source software
The roots of open source lie in the origins of software and of computing itself. First pioneered by scientists, researchers and academics, this field was predicated on the free and open sharing of knowledge and information.
Over the next few decades, the tendency for developers to share ideas declined with the emergence of commercial powers and a more competitive ethos. But there yet remained a handful of devoted enthusiasts and hobbyists adamant on continuing to write and distribute open source code, despite the increasingly corporatised nature of the software landscape.
One of the ways in which programmers shared their code was via computing books and magazines, which featured full reproductions of source code for readers to copy and use. This became particularly popular with the rise of home computers like the Commodore 64 and ZX Spectrum, which could be used to create basic games.
As more and more computers became connected to the internet, programmers started sharing their code with each other online. This led to a substantial increase in the number of available open source projects, and eventually to the creation of the Linux kernel by Linus Torvalds.
The term 'open source' was first adopted by advocates of these principles in 1998. It grew steadily in popularity and sophistication over the next few years and although open source software was previously known mainly to hardcore computing enthusiasts and programming geeks, it has now achieved a wide level of visibility and acceptance, both in the public eye and within the enterprise community.
Why is open source useful?
The most appealing aspect of open source is that it's completely free. It wouldn't be much of a challenge, for instance, to find free alternatives to relatively pricey flagship packages - alternatives to the Microsoft Office or Adobe suites for example.
For programmers and developers, the benefits of releasing your creations as open source software are increased feedback and collaboration. Your peers are free to change and improve your code, adding features you may not have thought of or simplifying it to make it more efficient.
Common wisdom also holds that open source software is more secure - after all, the more people are reviewing and working with a piece of code, the more likely it is that any potential errors or security holes will be spotted. On the other hand, the fact that the Heartbleed bug went undetected in the OpenSSL code for so long does throw some doubt on this theory.
How do companies make money from open source?
"But wait," you might say, "if open source software is free, then how can companies like Red Hat and Canonical make money from it?"
This is because organisations that specialise in open source products don't generally make money from sales of the software itself - anyone can download and use it.
Instead, many will offer an enhanced version of their products that enterprises can pay to use. These commonly include greater flexibility, more features and easier management and maintenance options.
Another tactic often used by open source vendors is to provide the software freely, but to withhold official support and other additional services from companies that haven't taken out a contract. Since business IT relies on minimising downtime as much as possible, strong support is essential which makes this tactic very effective.
How are open source projects built?
There are many reasons why people choose to contribute to open source projects. One of the most obvious ones is the sense of generosity and community spirit it creates; many developers simply want to help build cool stuff, and will contribute to projects that they think are useful and worthwhile.
Some coders are more utilitarian about the process than others; if a developer is using an open source tool in a particular project, they will often tweak or improve it over the course of their efforts. Those improvements are then circulated to the rest of the software's developers and users, resulting in gradual iterative improvements.
This also applies to companies that use open-source components, who will contribute large amounts of code to open source projects as a by-product of their own internal development cycles. Some companies will also task developers with contributing to existing open source projects out of sheer altruism, but this is considerably rarer.
What is more common is companies gifting tools they've developed internally to the open source community. Part of this is a purely practical effort to outsource the continued development and iteration of these tools to the community at large, but there's also an element of giving back to developers by giving them access to sophisticated software.