Wednesday, August 25, 2010

Free Software is Not Free

Being the minority few who still believe that Free Software is fundamentally better than Open Source (except the confusing name, that is), I was always amazed by how people refuse this ideal. After all, Free Software (sometimes in conjunction with Open Source software) offers so much more than proprietary ones: free systems (GNU/Linux, BSDs) are much more stable than proprietary ones (Windows, Mac); also cheaper, easier to use (with/without command line interface), prettier, and do everything you want (except when the users are professional, but that's vast minority; even in this case, there are extremely capable alternatives). Why don't people use it? Why do they stick to those buggy, stupid, (extremely) expensive, and most dangerously, extremely invasive and rude programs and systems? What's wrong?

I spent a lot of time considering on this matter, constructing all kinds of theories, all of which can be defeated by one way or another (remember, FSF works to defeat those silly theories on daily basis), until one day, I suddenly realize: Free Software is not free. Not by normal standard, not by Richard Stallman's own standard. Free Software may be free some a minority point of view, but from the majority user base (including myself most of the time) it is not free!

Before actually explaining, let's remind ourselves of the standard of software freedom: to use, to learn, to modify/customize, to share, and to sustain/encourge more freedom. The last thing is implicit, and it distinguishes between Free Software movement and Open Source movement: OS don't really care if you use its products to enslave others, FS do. A piece software is free iff it allows the user to do these 5 things. Oh, and be reminded that we don't talk about the top 0.01% of computer users who can speak 10 different programming languages, can recompile the whole system if needs be, or even properly reinstall their system. We are talking about the general public, whom I define as with little to no skill in administrative and programming tasks. Mind you, these guys are the majority, and freedom only meaningful when they have it. After all, rich people can always work around the laws, and power users can always have the freedom they want.

Anyhow, how many of these 5 freedoms do Free Software provide? Let's check:

To Use
Let's imagine a person without driving skill is given a car; does that person has freedom to drive? No, he does not. Yes, he has permission to drive, but not freedom to, because, in the end of the day, he cannot drive anyway. Similarly, majority of Free Software are not free to use, because the users are not well educated in how to use them. When Apple launched iPhone, it also launched a huge ad campaign, in which it litterally taught everyone how to use multi-touch. There are countless classes on how to use Microsoft Windows. Professional help for these things are available everywhere. Now, except when you know the circle of GNU/Linux users, learning how to use it is painful, to say the least. When I first tried out GNU/Linux, it wiped out my personal data. It's 7 years ago, but the sentiment is still around: it takes weeks to get back to speed with a new systems, months to understand and fully employ it, provided that you have both time/effort and help to do so. A person with minimum skill and willing to master the computer is, thus, offered nothing but a free installation disc. That's not freedom to use. It's permission to use!

Worse, many of the current data is in proprietary form. For example, video codec, image formats, document formats, etc. Is it the users' fault that those things are in such format? No. It's history's fault. However, Free Software movement punishes normal users for this situation: abstinence from prorietary codec means no movies; abstinence from Microsoft Office means countless documents cannot be render properly; etc. In the end of the day, the users, who don't have tools and control over these data, don't have freedom to enjoy/work with them. Let's not pretend that we can convert these things to free formats. It's a fantasy, and should remain there. In real life, the users have no freedom to use, end of the story.

To Learn
It is ultra important to learn about the software that we use, to know what it does to our data, our identity, our hardware, right? Therefore, FSF has always pushed programmers and vendors to provide "accessible" form of the programs, aka the source code. However, how accessible is thousands of highly optimized C source code files? This question is meant to apply to everybody, including Richard Stallman himself. How many people can make sure that the millions lines of code of Linux are not posting personal data somewhere, open backdoors, and cripple the system? I doubt if Linus himself can. Those things can be embedded somewhere in the huge huge maze of stuffs of the source tree. Are you sure you can learn anything?

Thus, to a user perspective, source code is about as good as binary code: the user cannot understand either. Thus, providing source code does not give freedom to learn. Stallman can talk about how you can hire professional to check these things for you, but what if that person cheats on you? Furthermore, if you buy Windows, I am pretty sure you can hire Microsoft to do things for you, too. Thus, Free Software does not provide anymore freedom to learn than proprietary software.

To Modify/Customize
Generally speaking, there are two ways to modify/customize a program:
  1. Modification of Source code
  2. Extensions
The first one assume, obviously, the understanding of the source code. Refer to the freedom to learn above, please. Furthermore, in order to build a program from source, you also need to know how to use a bunch of tools (make, ant, compilers, whatnots). Therefore, to most people, including many many programmers, this freedom is really not there.

The second customization way is the same for both proprietary and free software. You can change how Windows looks, extend Photoshop, etc. as easy as customizing X, write Emacs Lisp, etc. Actually, I would argue that it is easier to customize Windows than X, because there are so many pre-built customization that you can just download and use. There are many more tools too, and some of them are easier than modifying X.conf and a bunch of other little files scatter across the system.

In concrete term: proprietary software can actually provide more freedom of customization/modification than Free Software, due mostly to its dominant position, as well as its care toward end user, and lack of assumption that everyone should just compile everything from source.

To Share
Finally, something Free Software really offers. Nothing to argue here.

To Sustain and Encourage Freedom
I personally believe GPL is an awesome license (provided that you have no NDA to worry about): it's good for normal people (you can share), it's good for vendors (your investment cannot be stolen), it's good for business (no worry in patents, unlimited customization, low cost). However, the license is not enough for the whole business of freedom. You also need education (which FSF has done an extremely bad job), encouragement (again, abstinence from proprietary formats only harms the process), marketting and informance (again, bad job, FSF), as well as earning the correct mindshare (frankly, after a while, now FSF is perceive as either nerddom or communist organization, neither title is good).

Free Software movement is hero of digital age: they are the first one to remind us of our basic freedom in a new territory. However, they have been lost. Instead of providing real alternative (like GNU system to prorietary Unix/Windows system), they have been accusing (DRM is bad, iTunes is bad, Windows is bad; and? what to do about it?). Instead of spreading the words about freedom, they have been whining about the lack of, and done a lot of counter-productive stuffs like calling for boycott and that kind of things (gee, now you are spreading Microsoft/Apple name instead of your own; as if those entities have not advertise enough). Furthermore, their dogmatism (say no to proprietary codec being the most annoying one; drivers being the second) punishes the wrong people for the situation. Those things can sustain/spread freedom in theory, but in practice, as long as you don't have a commanding majority behind your back, trying to boycott, abstain, etc. only hurt your position, because people won't switch over. When people won't switch over, how can you attain commanding majority?

In conclusion, Free Software only fully provides one freedom (to share), partially 2 others (to use and to sustain), and completely fail 2 others (to learn and to customize). Worse, proprietary software poses to provide more freedom to learn and freedom to customize than Free Software! In the end, Free Software, despite its name, its battle, its effort, is not free.

No wonder people still refuse to switch over.

No comments:

Post a Comment