Why Steve Jobs did more for free software than RMS did.

2011/10/11

Categories: GeekStuff

No one denies that Richard Stallman is a very smart guy. He’s also an asshole. Most recently, he’s been ranting about how glad he is that Steve Jobs is dead. In the past, he’s done classy stuff like tell people to stop wasting time on their kids and work on bug fixes for his software.

Now, here’s the thing. It’s easy to say that he’s probably sort of autistic, and this explains his lack of empathy. You betcha it does! Yes, yes indeed. That’s why he has no empathy.

But it’s not why he’s an asshole, and it’s not why his software tends to suck.

I don’t have any empathy to speak of either. I can laugh when people I love are in pain because something about the situation is funny. (Interestingly, this is actually a fairly useful trait, because I cheer people up.) But I think about other people, and this makes me… well, often less of an asshole, except when I’m doing it anyway.

Steve Jobs was a big promoter of what was unambiguously unfree software, and RMS has been a big promoter of free (“as in speech”) software. But I put it to you that Steve Jobs has done more to actually increase the amount, availability, and utility, of free software than RMS has.

This may surprise you, but give it some thought. RMS is far from the only person ever to give away code. He wasn’t the first. And the way in which he has gone about it, the GPL, has been a major barrier in many cases to other people adopting and using that code. Competing licenses, like the MIT or BSD licenses, offer people more actual freedom. RMS has, for the most part, been a source of drama and FUD. Someone at the FSF once informed me that if it was possible for someone to link my code into a GPLd program, that meant that I had to release my code under GPL also. Obviously, that is not how licensing works, but RMS has built a culture of promoting crazy talk like that.

Crazy talk like that scares people away from involvement.

The GNU project has a long history of gratuitously breaking compatability with the rest of the world. The most famous example is their “info” documentation, which frequently results in the standard-format documentation being unmaintained, incomplete, and useless. There’s others. But more importantly, the GNU project has a history of writing astonishingly bad interfaces. Their interfaces are insanely muddled, inconsistent, and frequently impose arbitrary or stupid limitations.

And that’s where we get to Steve Jobs. Steve Jobs understood that people don’t, for the most part, want the abstraction “computer”. They want to get things done. And Steve Jobs built an empire out of building software around human expectations, rather than trying to retrain people to match software. The net result is that…

Look, I’m not afraid of computers. I program compulsively. I enjoy messing around with the guts and internals. And I’m typing this on a Mac, because the Mac lets me just get stuff done without thinking about how, so I can save the thinking about how as an exercise for when I want to do it.

Now, you might quite reasonably argue that building good proprietary interfaces doesn’t sound like it helps free software, but… We learn from these interfaces. Ever notice that Android phones use a lot of the guesture stuff that Apple introduced on the iPhone? That’s because it’s easy to copy a good interface. (Though hard to copy it well; android’s UI is still crap compared to the iPhone, but it copied enough to be at least mostly usable.)

RMS’s contributions to the state of the free software world are ultimately entirely replaceable, and in many cases the benefits are arguably overshadowed by the many ways in which he’s crippled project development by being politically stupid and hostile. If RMS had not been there to do this, frankly, I don’t think we’d be worse off. We’d probably be better off without the politics and drama.

What Jobs gave us was, so far as I can tell, irreplaceable. He had vision, and moved us a lot closer to ubiquitous computing. And you know what? Even if we never get a single line of code directly from all those pretty things (this, of course, won’t happen – much of it has been made available as open source), the improvements in quality of life and efficiency for millions of open source programmers will still mean that more good free code gets written.

It’s sad, because it doesn’t have to be this way. RMS may have no empathy, but so what? I don’t have any empathy. And yet, I’m nice to people. Not because of empathy, but because I thought about what I want the world to be like, and I want the people in it to be happier. For all his flaws, Jobs ultimately wanted to make people happier too. RMS, so far as I can tell, has never given any thought to making people happier.