- The freedom to run the program, for any purpose (freedom 0).
- The freedom to study how the program works, and adapt it to your needs (freedom 1). Access to the source code is a precondition for this.
- The freedom to redistribute copies so you can help your neighbor (freedom 2).
- The freedom to improve the program, and release your improvements to the public, so that the whole community benefits (freedom 3). Access to the source code is a precondition for this.
Ethics MatterThere is one other major point that goes hand-in-hand with free as in freedom, and that is that ethics matter. All decisions have an ethical basis. We hear "leave the zealotry and politics out of it, and just make a purely technical decision." There is no such thing, and if you don't make a consciously ethical decision then it will be made for you. Every time you purchase a software license for a product encumbered with shoddy patents and ridiculous, restrictive EULAs you are giving your support to shoddy patents and bogus EULAs. Every time you purchase a software license for a closed, proprietary, non-interoperable, non-standards compliant product you are saying that vendor lock-in is OK, and your data do not belong to you.
Contrast that with Free Software. By its nature Free Software is ethical: it is completely open, nothing is hidden, there are no sneaky backdoors, spyware, rootkits, or any of the other vile crimes-that-are-not-punished perpetrated by commercial software vendors. Nobody goes to jail for exposing flaws or talking about how the technology works. There are no EULAs or NDAs. There is little closed-door plotting; most discussions are out in the open for anyone to see, or even participate in. That is why people like me get so impatient with the demands to make Linux more friendly to closed-source proprietary software-- it is fundamentally opposed to what Free Software is all about. It's like saying that a little toxic waste in the water is OK, a little more air pollution isn't a problem because it's 90% pure, and only zealots and purists want 100%.
So What?So what does this mean at a pragmatic level? First of all, it means understanding the different between "pragmatic" and "expedient." "Pragmatic" is defined as "concerned with practical consequences". Free Software is completely pragmatic because it is based on a thorough understanding of consequences. "Expedient" is defined as "immediately advantageous without regard for ethics or consistent principle." Expedience drives poor decisions such as buying hardware without first researching how well it is supported in Linux, and then complaining about how it won't work and Linux sucks. Expedience is renewing an agreement with a proprietary software vendor who treats customers like dirt, because researching the alternatives requires a bit of effort. Expedience is jumping on the "Linux is cool and free" bandwagon without having any idea of what it's about, and then getting mad when it's different from Mac and Windows.
Linux and Free Software make some demands on users. We are expected to build some skills and acquire some knowledge, and participate in the community because taking without giving is not ethical. A growing user community should mean a growing pool of contributors, rather than a growing number of demands and complaints.
So what can a Linux user do to give back? We talk about "community"-- a community is made up of all kinds of different people. Free Software needs artists, designers, documentation writers, community builders, helpful patient people to do hands-on work with newbies, teachers, distributors, computer fixers, programmers, bug-finders, evangelists, organizers, financial supporters, and so on. Just being friendly is very important, since there are still a sizable number of folks who would rather write 10 flames than one single helpful post. It's not like the world needs more hostility, so every little bit of civility counts.
This article was first published on LinuxPlanet.com.