Open Source Software
Written on August 31st, 2006 by JamesAfter my last post it occurred to me that the idea of open source software (OSS) might be worth trying to explain. My understanding is that the emphasis is on freedom rather than free of cost. The commonly cited phrase is that true OSS is ‘free as in speech, not as in beer’. The idea is that by compelling software programmers to make their source code freely available it allows others to use that code for any purpose they wish. In turn, if these ‘other’ programmers choose to distribute their new code, based on the original OSS, they are compelled to make it freely available too. This is meant to result in an environment in which there is freedom to innovate.
Unfortunately, as in all things there are practicalities to consider. Good quality software needs to be developed in a controlled manner and supported to offer any widespread appeal. Proprietary software has lived with this fact since its inception, with ranging degrees of success. Can OSS provide any competition?
- Quality: Small OSS project might suffer from a lack of professionalism, but many of the mainstream projects are developed by the same group of people who working in the industry by day. They use commercial quality development tools for controlling every aspect of the project including revision/version control, bug reporting and workflow. Coincidentally, a number of these are Open Source too!
- Security: Since the code is free for everyone to see, those naughty crackers (the term hacker is often misused!) will exploit this to render the OSS unsafe. There is a flip-side to this argument due to the fact that the crackers are not the only people free to view these vulnerabilities. The resulting rapid deployment of security patches frequency leads the commercial sector. Stick to downloading your software from reputable sources, and checking the security information provided, and you shouldn’t have any problems. However, it can’t be denied that up to this point the commercial vendors have been a much more attractive target for attack. This is in part due to their perceived market domination, but as the use of OSS grows it will probably have to face greater exposure.
- Support: My experience has been that the documentation accompanying major OSS projects is at least as good as that of any commercial package I’ve bought. Couple this with the fact that these projects have a number of highly active user forums and you are not going to find many problems someone hasn’t already solved. In my opinion OSS often leads the commercial sector in support.
- Rapid development: For the developer the main beauty of OSS is that the source code is available and you are free to manipulate it as you will. This means that if the code already exists to provide functionality you need in your application, use it! The increase in development speed attendant with not continually reinventing the wheel is extremely valuable. Sure your resulting source code will have to be made freely available, but you can still make money by selling your product and support. The likes of Redhat and MySQL do it all the time.
As you can probably tell I’m a fan of the OSS idea, in part due to the fact the I’m into freedom in most facets of life (there are limits though in case you were wondering). I have used both excellent open source and commercial software products and would always advocate using the best tool for the job. I suspect that the two approaches will continue to coexist, slowly merging into one another. Many of the large software companies, such as Microsoft and Apple for example, are showing more interest in the open source concept and you can bet it’s not because of a yearning for a freer world. They too can see where openness can usefully fit into their business models, can you?
If your interested you might want to look at these references, they were useful to me.
- Brock, Simon and Wrigley, Ian (July 2005) ‘Open source defined’, PC Pro, Issue 129, pp. 226-228.
- Open Source Initiative (2005), The Open Source Definition Version 1.9 [online], Available form: http://www.opensource.org/docs/definition.php (accessed 31 Aug 2006).