Why you should use open source, free software.

The advantages of using open source, free software, rather than closed source, commercial software.

What does open source mean?

Open source software is usually free, but the two terms do not mean the same thing.

Open source software is software whose creators have made available the source code that makes up the software. The source code is the programming instructions that instruct the software how to run, what to do, etc. The source code might be in C, C++, Java, Perl, PHP, or any of a long list of programming languages, it doesn't matter. The point is, open source software is software that is not afraid to share its secrets, the ingredients that make up its behavior. Closed source, though, is the opposite: the developers jealously guard the source code, and get very upset if leaks of the code occur. They do not want to share the inner workings of their software.

Free software is, obviously, software that the creators give away for free, without demanding a penny in return. Some such developers may offer ways of donating money to the project, but this is not a requirement of using the software. Commercial software, however, requires payment of a fixed amount to legally use the software. Concessions may be made to students or not-for-profit organisations, but payment is almost always still required. Free software makes no such financial demand.

Reasons to use open source, free software.

It's free.

An obvious but vital point - you don't have to pay for free software. Not everyone can afford to buy commercial software, so if you produce content using commercial software, you limit the number of users that can access your work. I do not own Micrsoft Office, as I cannot justify spending that much money on a product I do not want. I use OpenOffice.org, which is a free office suite. But because Microsoft's Office suite is closed source, it is difficult to make file formats totally compatible. So when websites offer documents in Microsoft Word format, people without Word may not be able to read them, and if they can read them, they may appear garbled or laid out completely wrong. Even using commercial software that offers free reading software, such as Adobe Acrobat, is better than using a totally commercial format. Better still is to use an open source, free application that generates standards-based formats that everyone can make full use of.

It's collaborative.

Free, open source software is usually worked on by volunteers that welcome contributions from other programmers, graphic artists, designers, testers, documentation writers, and so on. These contributers are almost always people who enjoy or rely on the software for their own uses, so a large amount of talent is available, and people add features that they think are necessary, enriching the software from one version to the next. Commercial software is almost always produced by wage-slaves that are working on the code because they are told to, and they rely on the software for income. They add features that marketing directors believe will make the product attractive and generate sales. So useful features may be a long time arriving because the people that write the software may not necessarily use the software. (Ever got that feeling that the software you're using has never actually been tested by the person that created it? You're less likely to get that feeling using collaborative, open source software.)

It's safer.

Open source software bares its raw code. Anyone can download and peruse the source code, check to see if there are any security holes, check to see exactly what the software does: does it respect the privacy of its users, or does is send data back to a central database? Open source software has security holes fixed by contributors around the world, often within hours of a problem being spotted. Malevolent people can do the same, and use this knowledge to exploit the security holes, but this will simply trigger a faster fix for the problem. On the other hand, closed source software does not allow the general public to view the source code, and it clings to its secrets as tightly as it can. This makes it less likely that security holes will be spotted, less likely that these holes will be fixed. It does reduce the chance that malevolent users can discover the flaws, too, but ask yourself how many security alerts there have been surrounding Microsoft software, all of which is closed source. Hiding your source code does not stop attacks occurring, and if your code is discovered (such as when Microsoft's source code for Windows was leaked recently) it will almost certainly only find its way into the hands of malicious users (because helpful users will not legally be permitted to look at or edit the source code). All in all, it's much better to have your source code out in the open so everyone can check it over.

It's warm-hearted.

Open source, free software developers are usually people who don't care about the money. They add features to software because they care about the project, because they take pride in the quality of the components they provide. No one contributes to free software because they have to, or because they're paid to. They only do it because they want to, and that guarantees that any code they do contribute will be worth considering for inclusion into the product. Open source developers are usually collaborative-minded people with a real sense of community. They'll often be seen on mailing lists and usenet groups, talking about what needs to be done, and answering questions for new users. What do they get out of it? Apart from a sense of pride and generosity, they get to use software that contains exactly the sort of quality features they've been looking for. If you want to see new features in commercial software, you may aswell whistle for it - the chance of a corporate development team listening to your suggestions is very slim. With open source software, you can just look into adding the feature yourself, or finding a developer who has worked on similar features and asking him or her if they'll add it in the near future.

It's immortal.

When the company that produced a piece of commercial software dies, its software usually dies with it. This leaves a lot of people in the lurch, forced to look elsewhere for an ongoing software solution that will continue to receive security updates, stability patches, etc. But with free software, it's usually the case that nobody actually owns the software, at least not in the usual sense of the word. So it doesn't rely on a commercial body of developers, just on the volunteer developers that maintain it. And, so long as there are people using the software, there will likely be enough to keep the code updated and add features where they need them. This means the software is not at risk of disappearing at the turn of an economy. Anyone who still wants to use the software and maintain it is free to do so. Very occasionally you will see a piece of commercial software begin to sink when its company is not making enough money, and then volunteers and fund-raisers will step in to save it. Such was the case with the impressive 3D animation software Blender. But this does not always happen, so its better to be using free, open source software in the first place.

It obeys standards.

Standards are recommendations made by a (hopefully) independent body. The language that web pages use, HTML, has a set of standards drawn up by the W3C (World Wide Web Consortium). These standards set out recommendations for the structure of the language, and the features available. By obeying standards when creating web pages, you make sure that the greatest number of users and software applications can make sense of your pages. However, commercial software loves nothing more than breaking standards to suit itself. Microsoft are very keen on doing this. By adding properties that are not laid out in the standards, they create pages that only their software can make sense of. This causes problems for users of software that they did not create, and this is surely a deliberate attempt to force people to use their software and their software alone. Because free software does not need to force people to use it, it is happy to obey standards that have been set out, which makes it compatible with other standards-based software. This friendly co-operation means that everything should work together. However, even big standards like XML (another W3C standard) are already being perverted to suit closed source software, because commercial software desires to keep its users locked in to using it.

It's cross-platform.

Open source software doesn't mind what platform it runs on: any hardware, any operating system, whatever. The more the merrier. Standards and collaboration make it possible to create software that works on several different platforms, as developers are able to take work that's already been created and modify it to work on another platform. Commercial software very often requires you to use it on a specific platform. For instance, you can only run Microsoft Office on a Windows operating system. Allowing people to use such a widely-used piece of software on another operating system might reduce sales of Windows. Again, free software suffers no such terrors, and is happy for people to carry it to new places.

Suggestions

To get an idea of what's on offer, take a look at my list of my favourite open source software.