Why I can't afford proprietary software

The following happened at the lab a few months ago:

Date: Fri, 12 Dec 2008 12:16:52 -0500
To: matlab-users

Hi All,

Seems we've exceeded our pool of Matlab licenses.  We will be getting
more but unfortunately it takes 5-10 days to do so.

In the mean time please don't take up any more licenses than you
absolutely need and close instances you are not using.  We have some
people with tight paper deadlines that are unable to get licenses.

Thanks for your cooperation in this.

Just like that, for a handful of people, research work slowed to a crawl for almost a week at the end of the semester.

This kind of stuff makes my blood boil. There is no logical reason we have to ration software as if it were gasoline. But that's another rant. Enforcing unfortunate license restrictions is completely within The Mathworks' rights under the law.

I bring this up because I think it hints at the elephant in the room, namely:

When you use proprietary software on your computer, it's not your computer anymore.

That's the reason I'll talk my head off about free software and the reason I'm not going to stand for Matlab, Windows, Mac OS, Microsoft Office, the iPhone, , the Kindle, Flash, Skype, etc.— none of it. (Mathematica is a jaw-dropping technical achievement. And I still won't touch it with a ten-foot pole.) The moral of the story is not that you should double-check your Matlab license paperwork. No, this is par for the course, and just a symptom of the real problem: that proprietary software companies can enforce totally capricious and arbitrary restrictions on what we can and can't do with our computers, and that they have a well-documented history of doing so. So the less we have to rely on them, the better.

I am always a bit incredulous when people advocate proprietary software on the basis of things like ease of use or good design or shininess or intuitiveness or speed or usability or "it just works" or architectural superiority or elegance. It's not that I don't value those things. I'm an engineer myself, so I appreciate the effort that goes into making things work and work well. But what good is speed if you can't go anywhere? What good is usability if you can't fucking use your software? If you don't have two shreds of basic personal autonomy, worrying about other things seems kind of superfluous, no?

(It's just galling how most proprietary software has awful usability, but that's also another rant.)

You are probably skeptical, and rightfully so, about the true magnitude of the problem I'm complaining about here. This is not just an issue with a few bad apples (as it were...). It's a fundamental problem of incentives. When you pay for a license for bits, the vendor has an incentive to protect future sales by curtailing the possible uses of those bits. They certainly have the power to enforce whatever restrictions they wish and to change them up at any time. And they'll put time and effort into it, because you can't remove, inspect, or enumerate those restrictions. Maybe you think things are not so bad now, and indeed, maybe they aren't. But the rules can change arbitrarily and at any time, and I mean arbitrarily and at any time. (Three words: iPhone app store.) In the world of proprietary software, there are no sure things.

To put it succinctly, if you don't have the four freedoms, the people who make your software have the means, the motive, and the opportunity to cripple their products to extract as much money from you as they can. There is something deeply perverse and broken about this kind of business model. Remember the lesson from game theory: trust people when, and only when, it's in their best interest to help you.

It's not that I can't afford to pay for nice things. (What's $29, or even $1399, if it helps you get your job done? A bargain!) What I can't afford is paying for the privilege of letting someone have me by the throat (or elsewhere).


  1. Interesting post. My only question is how are you supposed to compensate the engineers who design the product. And should the company who built the product, be able to get something in return for the energy they put into it? I haven't read anything that the FSF might have written about this.

    Thanks for your post!

  2. Tsukemonoki:

    That's an important question, one that people have suggested various answers for.

    The FSF likes to say that free software is a matter of liberty and not of price. Fortunately, I don't think there is an inherent contradiction between making software that doesn't restrict users and actually paying your engineers. I really only object to one particular business model, that of crippling software so one can restrict its usage. There are a few alternative arrangements that are common today, all of which are better than the usual model in terms of aligning the interests of developers and users:

    * Google, for example, employs engineers to work on free software projects like the Linux kernel, GCC, and many others. Google does this because it gets to direct improvements in those products that make its own services better (faster, more efficient, etc.). For a similar reason, many consumer electronics companies also pay people to work on various free software projects.

    * The desktop GNU+Linux companies (Red Hat, Novell, Canonical) employ engineers to work on various infrastructure and desktop projects (kernel, X, GNOME, apps). In turn, they make money by selling support contracts for these products.

    * Some projects have a bounty system, essentially allowing users to directly buy particular features. This also helps developers prioritize their time.

    * Developers on many projects consult for companies and lend their expertise to help with extending a product, making a deployment, etc.

    * Finally, the vast majority of programmers (or so I've heard) are actually employed writing software that is used internally within a company and never sold. Users' freedom is guaranteed because in this model developers are directly accountable to their users.

    One cool thing about free software is that there can actually be a competitive market for engineers (if you need something fixed in Microsoft Office, pronto, there's only one number you can call...). So while free software is not as lucrative, probably, there is the potential for a much larger and much more vibrant ecosystem for engineers than with proprietary software.

  3. you could be using octave, or other software instead of matlab

  4. @Anonymous: absolutely. I use Octave in place of Matlab whenever possible. In this particular case I had to work with some already existing modules that had been written in Matlab.