Thursday 7 August 2008

What is Open Source software and why do people make it?

There seem to be some misconceptions around open source software. People outside of the IT industry really don't understand it, not understanding why anyone would give software away for free, and how it can be as good as commercially driven software.

So, let's first look at what open source software actually is. All software is written in some form of programming language - there are many of them around with different strengths and weaknesses. Some examples are C, Java, PHP, VisualBasic and C++. A programming language allows the programmer to perform relatively complex operations (calculating dates, for example) with a single line of code, rather than writing every single instruction that the computer's processor needs to perform.

The programming language is then either compiled in one go into instructions which the processor can perform directly (machine code), to create an executable program file, or interpreted into machine code by an interpreter program 'at runtime', i.e. when a user wants to run the program.

In either case, we talk about source code, which is the programming language code in which the program was written. This is what the 'source' in 'open source' refers to.

Traditional, commercial software is generally 'closed source', in other words only the vendor (and possibly specific associates and customers who have signed a non-disclosure agreement) can see the source code, and therefore change the functionality of the software. These companies (and Microsoft is the biggest example) see their shareholder value as the intellectual property they hold in the source code of their software.

With open source software, the source code of the software is available to anyone who wants it. They can then use it to modify the software in any way they choose, providing they themselves make their changes available to the public at large.

To the average user, this may seem a pretty useless privilege - how many people are really going to reprogram the operating system on their home PC? Well, not many, but the point is that some will. And that is they key advantage open source has - there will always be enthusiasts around who will fix bugs and improve things, and the openness tends to encourage good programming practices which lead to stable, secure software.

Some open source projects are structured around just these kind of enthusiasts. These community based projects generally have no commercial element, just a wide spread of developers making things! A good example is the Drupal web content management system (CMS). A lot of the functionality available is delivered by add-in modules, which have generally been built by people when they needed to do something the software didn't already do - they've then shared their work with the wider community.

However, it is possible to make money with open source, and the way to do this is generally from the services around the software you have developed. A good example of this is Red Hat, who are one of the largest providers of the Linux operating system. They have two separate distributions of their product. Fedora Linux is the community version - it is updated often and has input from community developers. By contrast, Red Hat Enterprise Linux incorporates changes from about every third Fedora release (form maximum stability) and is only available to paying customers in its compiled, easily installable form. Of course, the source code of the enterprise edition is freely available and organisations such as CentOS have used it to create a system which you can install straight from a disc. MySQL has been built on a very similar model to Red Hat.

It's also possible to make money from open source software which other people have built. For example, anyone with a basic knowledge of web hosting can download and install Drupal onto a standard package from a standard hosting provider, and use it to create a site which can be edited by users within their organisation. The same goes for the MediaWiki software which powers Wikipedia. But if you become an expert in Drupal, for example, you can then sell your services as a Drupal implementation specialist. You then have a big advantage over someone with their own commercially-developed CMS because you do not need to charge a hefty licence fee (which can run into thousands of pounds per user) for the software - you just charge for design and implementation time, which the commercial vendor would also need to do.

And if you are a specialist in a package like Drupal, it then makes commercial sense for you to publish your modifications back to the community, allowing others to build on them so you have an improved version next time.

Hopefully this has given you an insight into what this open source thing is, why people are motivated to build it, and why it's at least as stable and secure as its commercial equivalent.

Thanks for reading!
James Geldart - nuvola - better business through technology

Welcome

Hello and welcome to Nuvola's blog. We are a small company based near Bristol, UK, which produces bespoke web-based software for small businesses. In addition, we will soon be launching a subscription-based product to enable IT support companies to manage their customers, jobs and engineers better. More on this later.

This blog serves two purposes. Obviously, it is a promotional tool for Nuvola's business. However, if all I do is write about what we are doing, no one will read it. So, I also intend to provide information, especially focussed on using open source software in business and how it can help you reduce your spend on IT.