Software is an important part of our lives -- we use it for word processing, entertainment, interaction with the Internet, and sometimes even for simple things like keeping track of calendars or phone numbers. Free software is software distributed under a license which specifically allows such freedoms as copying, modifying, and redistributing the program along with its source code. It is also called `open-source software' to emphasize that it's a matter of liberty and not price -- free software would be just as free if it were packaged and sold in stores. In today's era of information exchange and global communications, free software offers a number of advantages over the traditional proprietary software paradigm. These advantages are realized by a wide variety of audiences, from the corporate to the end-user. Ultimately, both practical and ethical considerations show that free software is the superior choice for all of these audiences.
Paradoxically, free software simply makes good business sense. By opening the source to its programs, a company can achieve much faster development cycles: often there are other companies out there interested in developing a similar product, and often many of the customers themselves are able to contribute suggestions and patches (small changes to the source code that correct the behavior of the program). Since some of the customers are technically competent, and others are often large corporations with IT departments of their own, this assistance translates directly into more development. Indeed, this system allows the company to keep the overhead lower, since each software project requires fewer programmers on the payroll, and more software projects can be undertaken by a given number of programmers. Since the source code is peer-reviewed by many of the programmers who use it, the resulting software is often much higher quality than closed-source alternatives. For example, almost all of the software that makes up the core of the Internet is free software, such as the communication and transport protocols (TCP/IP), the software which handles delivery of email (sendmail), and the software which serves web pages (apache is the server program used on more than half of the webservers on the world, according to Netcraft's survey of over 4 million sites). Despite the Microsoft publicity about ActiveX, most of the active content on the web (such as animations and submission forms) is done by free software languages such as Perl. Sun Microsystems' first Webmaster, Hassan Schroeder, summed up its importance: ``Perl is the duct tape of the Internet.'' The stability of the Internet is a testament to the robustness of these applications.
Along with this increased robustness comes increased security. Many companies proclaim that closed source leads to fewer security risks, since the source code is hidden and people won't be able to figure out how it works as easily. However, this does not stand up to scrutiny -- the good guys are often busy doing many other things, whereas potential attackers can spend a lot of energy directed towards reverse engineering a single part of a program (for example, look at ``The Tao of Windows Buffer Overflow'' for a detailed description of how to locate and exploit security problems with Microsoft products). Closed source leads to several problems in terms of security. First of all, it creates a false sense of safety, since the vendors assure their customers that the source is kept safely hidden and there won't be problems with people discovering security holes. Second, it prevents the ethical programmers and users from noticing and fixing the security holes (this assumes that people with malicious intent or profit in mind are more motivated than other users to find security holes, which isn't unreasonable). Most importantly, keeping source closed complicates the distribution of trustworthy fixes when a hole is discovered. This problem arises because only the original vendor can write the patch, and again this patch is not peer-reviewed so it might not completely correct the problem (soon after Microsoft issued a patch for the `teardrop' attack, a variant of the attack appeared that was successful against computers that had the patch installed. On the other hand, the original patches for popular open-source operating systems such as Linux resisted the new attacks as well.)
Another practical reason for a business to choose the free software approach is to maintain close connections with its customers. Because of the rapidly increased development cycle, a company can be very responsive to its users -- feedback flows more freely, and often patches are made with the assistance of the users themselves. With the customer as a co-developer, and often with the collaboration of other companies interested in the same product, relatively small companies can create enormous software projects that rival large monopoly organizations (for instance, the Maxwell word processor started out this way). Indeed, free software projects often find that one of their users has ported their software to a new platform and sent them the changes required. This expands the range of platforms that the product supports, and in turn provides a broader market for the program.
Proponents of closed-source software question how companies can possibly make a profit when they're giving away their trade secrets. They question whether programmers can make a living writing free software, and they ask what will happen when free software wins out and proprietary software becomes a thing of the past. First of all, there are several dozen large companies making a living off free software right now, such as RedHat, Caldera, Cygnus, and Sendmail. They make money by packaging and selling a convenient distribution of their software, and by providing after-sale service to their customers. While the software is available for free from their websites, it is simply more convenient to receive a CD in the mail along with printed manuals, and people are willing to pay for this convenience. Many hardware companies distribute their software drivers as free software -- they make money off selling their hardware, and they need robust software drivers available on a wide variety of platforms. In addition, companies such as O'Reilly Associates and VA Research make money by selling accessories to the software, such as books, documentation, and integrated computer hardware systems that run free operating systems. Indeed, Netscape's decision to open the source code for its popular web browsing client shows the influence the idea of open-source has had on business. (The fact that Netscape was recently bought by AOL should be taken as a sign of the enormous power that Microsoft wields against its rivals, not as a sign that Netscape's decision was a bad one. Even now, the Mozilla browser (the project started from the source that Netscape published) is pushing ahead at a much faster pace than Microsoft can match with Internet Explorer development.) [Uh...something tells me I should remove this parenthetical comment, given recent resignations. Thoughts?]
In response to the concern over programmers losing their jobs, roughly three quarters of the programming jobs these days are for internal software that is not intended for direct sale to customers. These jobs are for designing software used by the company, ranging from internal payroll software to the software that controls the microwaves they sell. Eric Raymond, leader of the Open Source Initiative (OSI) and noted free software author, explains that ``most vertical code is integrated with its environment in ways that make reusing or copying it very difficult. (This is true whether the `environment' is a business office's set of procedures or the fuel-injection system of a combine harvester.) Thus, as the environment changes, there is a lot of work continually needed to keep the software in step. This is called `maintainance', and any software engineer or systems analyst will tell you that it makes up the vast majority of what programmers get paid to do. And it will still need to be done, even when most software is open-source.'' The claim that programmers will no longer have jobs if source is freely distributed simply does not makes sense.
Many people associate the term `free software' with shoddy or badly maintained software, made free because the author couldn't possibly make any money selling it. This concern over quality expands to a broader tactic that companies with large market share often use. The overall message is ``Hey, it could be risky going down that road, stick with us and you are with the crowd. Our next soon-to-be-released version will be better than that anyway.'' For example, the Software Publishers' Association frequently repeats what seems on the surface like common sense: ``Sometimes `getting what you paid for' isn't such a good thing.'' On the other hand, as shown above the quality of free software is frequently better than the quality of comparable proprietary software. The argument that free software comes with no support is difficult to maintain as well: in 1997, InfoWorld (a respected news organization and journal) awarded its annual Best Technical Support Award to the `Linux user community,' explaining ``readers who are using Linux in a business environment said they found the support they received to be far more impressive than what they were used to with commercial software.'' With the global connectivity of the Internet and the large satisfied user base, it's not unusual to get answers to complex technical questions within minutes of posting them to an appropriate mailing list; sometimes the answers come from the author of the program himself. And if a grassroots effort isn't enough, there are large venture-capital funded companies like LinuxCare springing up to provide support for Linux. These companies are providing their knowledge base to the Linux community free, and making money off service contracts and individual support and hand-holding.
Apart from the benefits for businesses, there are many reasons why individual consumers benefit more from free software than from closed-source proprietary software. The security and robustness translate directly into higher performance and reliability, requirements often overlooked in the corporate drive to beat out the competition with more and more features. More importantly, though, open standards and protocols ``allow genuine market competition, giving users options and choices. Closed standards and protocols and technical secrets, on the contrary, benefit only those seeking to maintain or attain monopoly control of markets by decommoditizing software.'' Closed-source software makes customers more dependent -- once they start using a given program, they need to keep purchasing upgrades to maintain compatibility (a prime example of this is Microsoft's habit of continually changing the save file format for Microsoft Word in each new release, whether or not the new release adds new features to the format). Consumers are dependent on their software vendor to fix bugs as they come up and to distribute the fixes in a timely manner. The fixes often cost more money, and indeed recurrent licensing often introduces even more ongoing financial dependencies. If a customer needs to modify or extend a program, he is forced to wait until the vendor decides to implement it. For example, Iceland wants to add Islandic support to Microsoft Windows, in order to help preserve its language and culture. They're even willing to pay for it. Without access to the source code, as well as the right to modify it, they are stuck waiting for Microsoft to decide it would be a smart business move. Many months later, Microsoft still doesn't want to devote its resources to such a small market.
The dependencies don't stop there. In addition to software dependencies, new versions of proprietary software often demand more and more from the hardware of the computer, dictating a hardware upgrade path as well. Free software, on the other hand, is often less demanding of resources, allowing older hardware to continue to be useful (because new dependencies are not introduced to force upgrades, and also because users of the older versions help to maintain them). This encourages the creation of organizations like Project Computer Bank, an Australian initiative to supply old computer equipment running free software operating systems and applications to low income individuals, community groups, and disadvantaged schools.
Obviously, a primary benefit of free software is that it is typically available for free: this feature is crucial for developing countries. But there's more to it than just the price. The freedom to study and learn from the program, modify it to add new features, and then redistribute those features, is fundamental to the idea of free software. As Danny Yee writes in his proposal for the adoption of free software by Community Aid Abroad, an Australian organization to support long-term self help initiatives among poor communities in over 30 countries, ``Most free software has been produced through decentralised, community-based development processes which are usually open to anyone with the right technical skills (or a willingness to learn) who is prepared to do the work. Users of free software can join software development communities and participate in the refinement and improvement of existing software, or in the development of entirely new programs, building on what already exists.'' Users can share freely with others in the community, or with other communities. With free software the possibilities for building local support and maintenance systems are unlimited -- there is no vendor controlling the development of new features and bug fixes, and no monopoly on support. If a vendor goes out of business but its software is under a free license, then the software will live forever as long as it has users.
For practical reasons alone, free software is clearly an intelligent choice for both businesses and consumers. In addition, though, free software promotes education (learning from source code) and free sharing of information and ideas. It fosters a sense of community and shared values. With the rapid growth of the Internet combined with the open free software development model, free software allows people from all over the world to participate in creating and molding the technologies and systems that will determine their future.
However, the benefits of free software are not reserved for those curious about the source code or interested in developing it further. For the simple end-user -- the computer user who simply wants to turn on his computer, do some work, and never have to know or understand how the computer works -- the benefits are many, including in particular higher performance and security for applications, less dependence on a single vendor for updates and upgrades, and the peace of mind that comes with being able to freely and legally share software with his neighbors. Because of the many practical arguments for businesses, free software is likely to grow more and more popular in the corporate scene. This means that moving to free software is not a risky proposition -- if anything, sticking with closed-source proprietary software is the more dangerous choice.
[From here on out, this paper is oriented towards a different audience. I need to split it into two documents, the first pointed towards software engineers and technically-savvy people, and the second pointed towards true end-users. The current state just won't do. --Roger]
With this new freedom and flexibility comes the opportunity to join the community and participate in the growth of the free software world in a variety of ways.
On the other hand, some users do not have the time or inclination to try installing a new operating system; these users can still help out in other organizations that need assistance with non-technical advocacy documents and general end-user awareness. For instance, one such organization is the Simple End-User Linux project (SEUL, rhymes with `tool'): for the past two years, SEUL has been working to characterize the needs of end-users, develop and collect applications that are designed with end-users in mind, and manage and coordinate communications and development work between similar projects. We have advocacy documents describing in detail why Linux is an appropriate choice for end-users or corporate users, and a couple of other `how-to' documents such as a guide for contacting corporations to suggest that they offer a Linux version of their software applications. Another facet of the SEUL project is the SEUL Education project -- a collection of applications and application designs for software appropriate to schools or home education, ranging from typing tutors to gradebooks to complex geometry or physics simulation engines.
The SEUL project would benefit from assistance from all types of volunteers, ranging from the most technical to the most non-technical. In particular, non-technical users with no experience with Linux or free software can evaluate the advocacy documents and papers, and point out where the logic is insufficient or confusing or where a point needs to be explained further. Those interested in free software should subscribe to the SEUL announcements mailing list to keep informed of new project developments and products. More generally, computer users should encourage the use and deployment of software systems that can be freely modified, enabling them to take control of their situation and efficiently and effectively get their work done. Ultimately, companies, organizations, and individuals should all try to free themselves from the restrictions of proprietary software.