Wednesday, April 19, 2006

Why Free Software is bad

I think this is a great case for why I like the idea of Open Source and I generally detest the idea of Free Software for being a naive view of the world.

As Stallman points out, there are four basic freedoms involved in Free Software (and, incidentally, I think the comment that, "Real programmers count from zero..." is very telling. The point of a computer, dear Richard, is to interact with people. Most people aren't programmers, nor should they be. _People_ count from 1. Idiot...):
  • Zero is the freedom to run the program as you wish
  • One is the freedom to study and change the software
  • Two is the freedom to redistribute copies as you wish
  • Three is the freedom to distribute modifed versions as you wish.

As far as I'm concerned, One is the only important principle there. The danger to the software industry is having software that's a black box. It's extremely important for interoperability and safe layering of software to know the exact behavior of the software you're interacting with. Indeed, this mismatch between two interacting pieces of software is the cause of most bugs, security holes, reliability problems, etc. Moreover, it's the way software vendors lock you into their products. Therefore, it's important to be able to study code both for research purposes as well as for competitive marketplace purposes.

Typically, the counter-argument to Freedom One is that, well, if people can see your source code, they can just copy it and use it without compensating you, and there's no incentive to create software any more. With regard to literal copying, that can be taken care of with copyright. With regard to copying the idea, well, any significantly complex idea is difficult to copy correctly. The value of any piece of software is generally not the fundamental idea behind it, but instead the robustness of the particular implementation of that idea with respect to performance, reliability, managability, etc. By and large, you don't get a benefit with regard to the latter simply by looking at someone's code. So I think that objection is bullshit.

As for the other freedoms, I have ranted about how ridiculous they are as ipso facto virtues. They aren't. They're derivative virtues that are essentially principles attempting a particular implementation of a wider goal where that wider goal is...actually, I'm not even sure what the wider goal is. The mentality of the Free Software movement seems to parallel a wider Libertarian philosophy that total freedom to do anything is a virtue in and of itself, which is both naive and stupid. Personally, I would say that the goal is to make computer systems that make people's lives easier and better. That's not the same thing as saying anybody should be able to do anything with their computer and/or their software.

Want an example in which the two are different? I'll give you my three favorites:

  1. Heterogeneity is the bane of managability, and computer managability is the single greatest headache of most consumers. In simpler, more concrete terms, computers infuriate most people because they are expected to be able to know what to buy, how to configure it, and how to fix it if it goes wrong. One of the best lessons we can learn from Windows is that if you give people enough rope to hang themselves, they will find a myriad of creative ways to do so. Want to install this ActiveX control? What about this program? How about executing this attachment? Think it's safe to go to this phishing web site? How about this driver...think it will destabilize your system? Etc. Most people neither want nor need all the flexibility of such a system, and would be downright grateful not to have to make those decisions.
  2. Data has more semantic meaning and importance than simple bytes. If your medical records are digitized, you want some guarantee about what the computer systems that manipulate those records can and cannot do. It is not necessarily in your or society's interest to have someone be able to load arbitrary software on a server storing medical records, because then all bets are off.
  3. Sometimes you want to be assured that a computer system not under your control faithfully performed some action. Think, for example, of a car odometer. When you buy a used car, you rely on the accuracy of the odometer to tell you how much that car has been driven. If someone came in and told you, "I should have the freeom to put whatever software I want in that odometer control!", you would probably get rather pissed off, don't you think?

Anyway...I think Stallman is an idiot (can you tell?), but Lessig I tend to have more respect for. I would like to hear his arguments against DRM as I suspect they are far more pragmatic than Stallman's.

(Keep in mind, incidentally, that because I think DRM is a good thing in principle doesn't mean I think it should be handed to industry carte blanche. We're being fucked by people like the RIAA, and I think DRM is our collective bargaining chip to get such people to stop being such monopolistic pricks. I.e., "We'll give you DRM, but you have to open up to increased competition. Mmm'k? Good boy. Have a biscuit.")

No comments: