Open source software is software made freely available for anyone to view, edit and contribute source code. We are big fans of open source software here at Phoenix and use it over proprietary software whenever feasible. There are a few reasons for this, some of which directly benefit our clients.
Well known examples of OSS include the GNU/Linux operating system, Apache web server and internet browser Mozilla Firefox. This and other software help power the internet and some are market leaders in their respective fields.
Open source is one software licensing and development model. The opposite side of the coin is proprietary software. Proprietary software is distributed with source code that can only be changed or viewed by the original developers. The code is provided in compiled form, using a machine language understood by the computer, but impenetrable to humans. The developers use this method of distribution to protect their intellectual property. A licence for the use of such software usually costs, either for a regular subscription fee or a one-time purchase fee.
As an example, almost all the software developed by Microsoft and Apple is developed under a proprietary model. These two companies are the most powerful proponents of proprietary software.
So, two development models. Both have led to the creation of some great software. To show you why we prefer open source we’ll run you through some comparisons.
The most obvious advantage that OSS has over proprietary software is the cost of a licence. An OSS licence is usually free. There are exceptions to the rule which depend on your literal definition of open source, but for our purposes it is safe to assume that OSS is free and proprietary software is not. This does not mean that all costs are removed. OSS must be learned, maintained, updated etc. and this all costs time and/or money. Nevertheless, the license saving is a significant one.
Since it is free you could be forgiven for thinking that OSS will be buggier, less secure and less user friendly than an equivalent proprietary solution. In fact, in many cases the OSS is of better quality.
A primary reason for this is that anyone can look at the code and spot defects in OSS. This means that anyone using the software is effectively part of the quality control team, even if they just report bugs. Proprietary software development houses have in-house teams dedicated to quality control, but all employees must be paid and the company can never hope to leverage the sort of manpower that an OSS team can.
Audits done by the US Department of Homeland Security found that the quality of software developed using open source principals, is about the same as proprietary software. In fact, for smaller projects OSS development led to better code. Once a project passes a certain scale (at about one million lines of code), the formal quality control processes of proprietary outfits give an advantage. However, even at this level the difference is minor. Not too shabby for software that is free!
Efficiency is an area in which OSS leaves proprietary solutions in the dust. OSS solutions tend to be speedier and take up less hard drive space than the proprietary equivalent. The reason for this is bloat. Proprietary software houses tend to develop monolithic software aimed to be all things to all people. Users pay for a handful of functions they need and several others they’ll never use. OSS tends to be more modularised, with end users putting together the implementation that best suits them. A great example of modular OSS is WordPress which is a platform for a basic website or blog, but can be made into several other types of website with the use of plugins.
For a classic example of bloat, consider two alternatives for data base management systems. MySQL which is open source and Microsoft SQL Server. Microsoft SQL Server has an install size of 6GB. MySQL has an install size of merely 0.2GB for the server + another 0.15GB for MySQL Workbench.
The sales model of proprietary software incentivises developers to use lock-in measures, that keep competitors from making inroads on the market.
For example, proprietary developers often use proprietary file formats and application programming interfaces (APIs). This is done on purpose to make it hard for external developers to integrate with or reverse engineer the proprietary software. The proprietary companies effectively force you to use the company’s entire ecosystem of software. A great example is PSD which is Adobe Photoshop’s native image format. The documentation of this file format remains closed to the public and difficult to reverse engineer.
Another practice is to update software you’ve already bought and charge for the update. Measures are then taken to ensure that the previous version of the software is rendered obsolete. The constant upgrading of Microsoft Office is a perfect example with forced obsolescence introduced by creating the docx
file formats of Office 2007.
OSS is not subject to these tactics. The code is free, the updates are free, the data formats and the APIs are open. This reduces the cost of maintaining systems or switching to a new solution when desired.
Sometimes a small number of organisations need software with certain niche functionality. In these niche markets there is not high demand for the software, so a critical mass of OSS developers tends not to gather. These organisations still need their problem solved so they are willing to pay to have it solved. Proprietary software has an advantage in this area.
An example of this scenario is specialised engineering software such as a structural analysis package used only by structural engineers. Another example is database software for a industry with niche data needs such as a pedigree management software.
Niche proprietary solutions are sometimes built upon the codebase of an existing OSS solution. A typical example is writing an extension for WooCommerce to suit the specialised eCommerce needs of a particular business.
An advantage of commercial software is the support that comes with buying the licence. When it comes down to it, this is most of the value you are paying for. Providing this support constitutes much of a software company’s running costs.
With OSS, there is no obligation from the developers to provide direct customer service and no one is responsible if something goes wrong. This however is a moot point. The reality is there are many companies you can hire to provide support for OSS. For example, Red Hat and Canonical provide support for Linux.
Because OSS software doesn’t belong to anyone, companies can compete with each other to provide support. Mature OSS is documented and forms communities which provide advice and support on forums and Q&A sites like Stack Overflow.
Since open source developers do not sell licences for their software, they make money in less linear ways. Some of these include:
Aside from these revenue streams, many OSS developers volunteer their time out of passion for a project or desire for recognition. OSS can also be released under the principle of ‘delayed open-sourcing’ where a proprietary product has reached its commercial end of life and is essentially re-released with a new licence.
A few of the open source software and technologies we use includes:
Many more open source technologies are mentioned in this lexicon.
Read more about open source at these resources: