tadhg.com
tadhg.com
 

Why I Use Free Software

00:00 Tue 13 Aug 2002. Updated: 21:48 03 Dec 2006
[, , , ]

Free software is important. As more and more individuals, services, businesses and governments turn to computers and the Internet, the role of software becomes increasingly critical in defining how our world works. The software used, and crucially the ways in which software can be used, have effects and implications that should not be ignored.

What do I mean by “free software”? I’m not referring to price, but to the freedoms possessed by users of the software. I mean software without restrictions that constrain my use of it. I mean “free as in speech” as opposed to “free as in beer”.

The opposite of “free software” is “proprietary software”.

The freedoms required to match this definition of “free” are those defined by the Free Software Foundation.

I’ll paraphrase those requirements:

  1. The freedom to use the software however I like. This includes using it on many computers and/or platforms, using it for any purpose that I wish, using it wherever and whenever I wish without restriction, using it to interact with as many other people or programs as I wish, etc. Typical proprietary software licenses tend to restrict some or all of these examples.
  2. The freedom to examine how the softare works, and to alter it as I wish. This must include access to the sofware’s source code. (An explanation of “source code” will follow.) This includes everything from changing the software’s default colors to reworking it entirely.
  3. The freedom to share the software. This includes the source code. Helping others is a good thing, and I want to share my software without worrying about legal issues (which are becoming more serious and more common).
  4. The freedom to modify the software and share those modifications. If I decide that I want to alter something in the software, I should be able to share any such alteration in the same way that I can share the program itself. This is beneficial for all concerned, since anyone else desiring a similar improvement to mine can use mine or modify mine for their own purposes.

There are other points, primarily concerned with closing loopholes in the above definitions, but the general idea should be clear, or clear except for an explanation of “source code”.

Software is often “compiled”, which essentially means translated from a form designed to be human-readable to a form designed to be machine-readable. The former is “source code” and the latter is “executable code”. Executable code is usually tailored to a specific hardware environment (like the Mac architecture, for example). It is possible, with a lot of effort, for some people to read some executable code, but for meaningful access to the workings of the software, source code is required.

The most common analogies for this are the recipe and the car. The source code is the recipe, and the finished meal is the executable code. This gets the general idea across, and perhaps the inherent meanness of someone refusing to share a recipe underscores the point. The only problem is that a recipe is intangible and the finished meal is not, whereas both the source code and the executable are intangible (i.e. recipe, source code and executable code can all be perfectly represented as pure information, whereas the meal cannot).

The other common analogy is the car: free software is a car that you can repair yourself; proprietary software is a car that has had its hood welded shut and that can only be repaired by the manufacturer. This works well as long as you consider that unlike cars, software can be distributed, and redistributed, at no cost.

So, the source code is what you need so that you can figure out how the software works, so that you can alter the software (or have someone else alter it) to suit your needs (or to fix bugs in the software). Without the source code, you are entirely dependent on the software’s author(s) to make the alterations you desire.

I use free software because its benefits are far greater than those of proprietary software. The first reason for this is duplication of effort. If all software were free, then coders would rarely have to reinvent something already made by another coder. This is obviously beneficial to the community at large, since efforts could be redirected to improving available software or writing entirely new software.

The second reason is that free software is more compatible with a philosophy of helping others, of sharing with the community, and of contributing to the general good.

The third reason is that proprietary software manufacturers, in seeking to maximize profits, use the fact that their software is proprietary to lock users and vendors into even less free relationships.

The fourth reason is that I want my data to be freely available to me, forever. Proprietary software tends to use proprietary (i.e. secret) data formats, and also to degrade compatibility between different versions of these formats, in order to push users to buy the latest versions of their packages. Free formats, in contrast, tend to be very well supported, very well documented, and long-lived. In addition, using free software means that if absolutely necessary I can always in the future either write or hire someone to write a module that would interpret the free data format my data is stored in—a far more difficult proposition when using proprietary software and proprietary formats.

Free software is a more participatory model, is better for software development in general, better for communities in general, promotes sharing, and often produces better software.

Relevant Links

The Free Software Definition—the FSF’s definition.

Why Software Should Not Have Owners—some of the reasoning behind the free software model.

Peruvian Congressman’s letter on why the Peruvian government should use free software—long but very very good, outlines many of the reasons why governments should not be using proprietary software.

Leave a Reply