$$ - An introduciton to Free Open Source Software
This article introduces the reader to Free Open Source Software (FOSS) by discussing the philosophies, benefits, business models and licensing arrangements that the FOSS movement has either been built upon, or given rise to. In addition and in what I anticipate will be of most interest and practical use to the majority of readers a list of examples of popular FOSS products has been included towards the end of this article, several of which may already be in use in the readers home or workplace today.
Given the increasing global awareness of the future role open source software is likely to play in the health sector, a comprehensive article devoted to health-related open source initiatives will be presented in the November edition of Pulse+IT.
It should first be noted that the Free part of FOSS is considered an ambiguous term in software circles. For the purpose of this article therefore, any reference to Free will refer to the concept of something that does not cost anything to obtain (free beer being the usual example provided, however free healthcare is perhaps a more appropriate example in light of recent Governmental directives).
Source refers to the software code that is written by programmers, which is (usually) then compiled into a software application that can be run by the user.
Open indicates that the source code is made available for inspection or download by interested parties, usually, but not always, via it being published online for public consumption.
In totality therefore, Free Open Source Software refers to software that both costs nothing, and whose source code can be inspected.
Motivations and business models
Usually the first question pondered by people trying to understand what motivates people involved with open source projects is along the lines of: If the programmers are giving away the fruits of their labour for free, why do they do it?.
There is certainly no definitive answer to this question. However, various combinations of altruism, anti-establishment sentiment (which often manifests itself as anti-Microsoft sentiment), and a desire to improve the quality of the software available for use by participating developers are identifiable driving forces behind many open source initiatives.
These motivations aside, there are many practical and financially related justifications stated by developers as to why they participate in open source projects:
Involvement in open source projects allows the developer to enhance their programming skills and gain commercially valuable experience that may not otherwise be available to them.
While the underlying source code is freely available, it does not necessarily mean that financial gain cannot be extracted from the project. Indeed, by developing a thorough understanding of some open source projects, individuals are able to sell such expertise to the market as an implementation, integration or technical support consultant.
Developers are able to extend open source projects by writing plug-ins or releasing premium versions of the software which they can sell to the market on commercial terms.
With thousands of open source software projects in existence, it is only natural that there exists a wide degree of variability between them. That said, the following characteristics are typical of established open source projects with active developer and user groups:
It is common for people to associate low cost or free with low quality, however open source software is now widely accepted as one exception to this conventional wisdom. In fact it is ironic that in many instances, free open source software solutions eclipse the quality of their commercial alternatives.
The explanation for this phenomena stems directly from the fact that, by definition, open source software projects allow the community to inspect and critique the work of the projects developers. When coupled with an active user community that routinely offer feature requests and submit bug reports, any issues in the software are typically identified and rectified rapidly.
While the programming quality of most popular open source applications is high, the same level of quality does not always extend to the outward appearance of software. Indeed, open source software user interfaces can look drab and exhibit ignorance of commonly accepted design principles. For example the recently superseded second major release of the Firefox Internet browser looked outwardly like a relic from the pre-Windows 95 days, spawning a plethora of alternative third-party skins which attempted to rectify the travesty. Comprehensive and current end user documentation can also be less than adequate, however it is accepted that both of these afflictions prevail in commercial software circles also.
Unless you have the technical expertise to pro-actively monitor the outgoing network connections made by your software, it is difficult to have any certainty as to what the software may be transmitting across the Internet, and to whom.
By allowing source code to be interrogated, assurances about the safety of the software can be provided to the products user community by suitably qualified, independent developers. While this warts and all openness has historically been derided by open source detractors as potentially highlighting aspects of the software open to exploitation, it is now widely accepted that this same openness allows such issues to be addressed rapidly, usually before any serious consequences eventuate.
The quality and timeliness of technical support for specific open source software products tends to scale in proportion to the size of the projects developer and user community. With many open source software products enjoying truly global audiences, it is not atypical to receive responses to support queries lodged on email discussion lists or web forums within a few hours, and many times, withing a few minutes!
Organisations looking to deploy open source software for mission critical tasks should consider establishing a relationship with a commercial technical support organisation that specialises in providing support for the deployed solution.
Open Source Software Licensing
While there are a plethora of different licensing models under which open source software can be released, two of the most widely used are the Berkeley Software Distribution (BSD) license, and the GNU General Public License (GPL).
In each case, the end user of the software application need not be overly concerned about the license chosen by the developer, as both permit code released under these licenses to be used, copied, and distributed without restriction. There are, however, different implications for software developers as outlined below:
Berkeley Software Distribution (BSD) License
Under this arrangement, software developers are free to use and modify source code released under the BSD license, but they do not have to release their coding additions or enhancements back to the community. In fact the only requirement placed on developers who utilise code released under the BSD license is that they must acknowledge the previous developers of the code, and include the text of the BSD license in their source code or distributed applications.
In the development of MacOS X, Apple capitalised on the flexibility of the BSD license arrangement by borrowing large slabs of the FreeBSD operating system. The subsequent source code enhancements developed by Apples programmers do not have to be released back to the community, an arrangement which protects their commercial interests. Despite the fact that they are not compelled to do so, it should be acknowledged that Apple does contribute significant resources to fostering selected open source initiatives.
GNU General Public License (GPL)
Source code released under the GPL allows other developers to modify the code, however unlike BSD, all changes need to be made freely and readily available to the community. These derivative efforts need to be made available and licensed under the GPL, a restriction that generally appeals less to developers with commercial interests, but more to developers interested in seeing the open source initiative attract more programmers and flourish.
Popular Open Source Software
Following is a non-exhaustive list of some popular free open source software applications that rival or surpass the quality of their commercial competition:
With its development overseen by Mozilla, Firefox is the second most pervasive web browser used on the Internet. In fact the recently released third major iteration of Firefox was downloaded over 8 million times on the day of its release, setting a Guinness World Record for the most copies of a software product downloaded in a 24 hour period.
While the latest versions of both Internet Explorer (for Windows) and Safari (for Mac and Windows) are both capable products, neither can interface with the wide array of third-party extensions developed for Firefox. In addition to cosmetic skins that allow the user to customise the look and feel of their browser, the open source underpinnings of Firefox has prompted an explosion of functional additions. FTP clients, RSS readers, advertising blockers and many other extensions can all be installed with relative ease.
Readers looking to trial Firefox need not delete their existing web browser indeed, it is probably better that this software be retained for the increasingly rare instances when Firefox is not optimally supported by a website.
Also produced by Mozilla, Thunderbird is a fully-featured email client for Windows, MacOS X, and Linux. Outwardly similar to commercially developed competitors like Microsoft Outlook, Thunderbird features many under-the-hood improvements, such as a powerful junk mail filter that has the ability to learn which emails the user typically considers to be junk.
Developed as a pure email client, Thunderbird lacks a built-in calendar and task list, however this functionality can be added using a free Mozilla extension called Lightning. As with Firefox, a large collection of other functional and cosmetic add-ons are available for Thunderbird.
Joomla is a database-driven web Content Management System (CMS) that allows website owners to simplify the creation and maintenance of their websites. Once established, Joomla websites can be maintained through an administrator panel using a web browser, negating the need for locally installed website development tools to be used.
Having started its life as a project branch of Mambo, Joomlas popularity has grown rapidly and is now undoubtedly the most widely deployed CMS on the web.
Joomlas open source core functionality can be extended using thousands of free and commercial software plugins, which allow even novice website administrators to build highly functional web presences.
Perhaps one of the most comprehensive examples of a successful open source project, Linux does not refer to an application, but rather, an entire operating system.
Having gained a foothold in the server market many years ago, the usability of Linux has steadily improved to the point where even novice computing users find the system intuitive, fully featured, and an easy to use desktop operating system.
Unlike MacOS X and Windows, which are released in only a handful of configurations, Linux can be downloaded in any one of hundreds of pre-configured distributions (distros), each one catering to different user requirements and tastes. Ubuntu, (or its graphically differing sibling Kubuntu), are among the most popular and easy to use Linux distributions, and are arguably the most appropriate starting point for users looking to investigate Linux further. These versions of Linux (and many other) can be obtained on a live CD, which allows the user to simply insert a disk containing the operating system into their computer, and trial the software without having to install anything on their hard drive.
VLC Media Player
VLC is a general purpose media player for Windows, MacOS X and Linux, whose principle strength is that it can play most of the video formats used by the distributors of video content over the Internet, negating the need for the user to source and download specific video extensions codecs.
Supported by Sun Microsystems, OpenOffice is pitched squarely as a free alternative to Microsofts venerable Office suite. Whilst earlier versions lacked a certain degree of polish, the latest incarnation of the software suite could be described as being all things to most people.
OpenOffice is compatible with Windows, MacOS X and Linux. Importantly, it supports Microsoft Office file formats, in addition to its native ISO standard Open Document Format.
While it hasnt always been the case, today, open source solutions that address the needs of a large number of computing users generally rival or surpass the quality and feature sets of their commercial alternatives.
While there is certainly no need to replace already paid up commercial software that is serving its intended purpose, both individuals and organisations of all shapes and sizes would be well served by familiarising themselves with the popular free open source alternatives available before committing to commercial upgrades.
Posted in Australian eHealth