I’ve spent a lot of time writing arguments for why open-source software is a good idea and everyone should do it. On the evidence, I’m pretty good at this. I achieved that goodness through a strategy of making rational, technical, utility-maximization arguments in which I explicitly disclaimed having any normative or moralizing agenda.
While I’m happy with the results I’ve gotten from that strategy, it means there are people in the world who think they can persuade me to give proprietary software a second look by making rational, utility-maximizing arguments of their own. One of my regular commenters wrote this recently: “Eric, you may want to give MSDN, Windows, and their developer tools a second, unprejudiced look; they really are better than what Linux has to offer.”
It’s not going to happen. Ever. And the fact that anyone could say that to me, and believe for a nanosecond they might get any other answer, means that I need to explain something in public: why I hate proprietary software.
More precisely, I hate the proprietary software system of production. Not at the artisan level; I’ve defended the right of programmers to issue work under proprietary licenses because I think that if a programmer wants to write a program and sell it, it’s neither my business nor anyone else’s but his customer’s what the terms of sale are.
No, what I hate is when that system scales up into what left-wingers call soulless corporate machines. Unlike them, I’m OK with soulless corporate machines in general; they’re positively good for you compared to the things governments get up to. It’s the specific things that happen when the management of programming gets separated from the art of programming that I hate.
And yes, the emotionally-loaded word ‘hate’ is the rignt word to use, in contrast to all the cool rational-maximizer reasons I like open source. It’s not a lofty idealistic loathing like Richard Stallman’s; it’s a bitter, gut-clenching personal hatred. I’m not a moralist, and am not arguing that everyone should share my feelings about the matter at peril of being damned. Still, I’m going to put my feelings on the record so that the next time some idiot feeds me a similar line, I can point him at that record.
I’ll start with a deliberately melodramatic simile, then explain it. When you tell me I should give proprietary software a fair technical evaluation because its features are so nice, what you are actually doing is saying “Look at the shine on those manacles!” to someone who remembers feeling like a slave.
From 1979 to 1985, and then briefly in 1988-89, I was a component in the proprietary-software system of production. In that world, the working programmer’s normal experience includes being forced to use broken tools for political reasons, insane specifications, and impossible deadlines. It means living in Dilbert-land, only without the irony. It means sweating blood through the forehead to do sound work only to have it trashed, mangled, or buried by people who couldn’t write a line of code to save their lives.
If you love programming, trying to do work you can be proud of in this situation is heartbreaking. You know you could do better work if they’d just goddamn give you room to breathe. But there’s never time to do it right, and always another brain-dead idea for a feature nobody will ever actually use coming at you from a marketing department who thinks it will look good on the checklist. Long days, long nights and at the end of it all some guy in a suit owns all that work, owns the children of your mind, owns a piece of you.
And you know what? Comparatively, I know I had it good. Truly incompetent or evil bosses abused some of my peers far worse. Mine weren’t a bad lot, as these things go. All of us were ensnared in a system of production that could only rarely rise above shitty code and shitty outcomes because the logic of the system trapped us in dysfunctional roles. I’m not naming companies and people because the dysfunction was, in a horrifying but undeniable way, nobody’s fault.
Some of us, including me, dreamed of completely “free” software environments before the public launch of FSF not for abstract moral reasons or because of some soi-disant social problem, but because the conditions of our craft were intolerable to us. We were suffocating, being ground down into unfeeling cogs taught by repeated pain that we must not care about our art because to care was to lose.
The stupid and the timeservers were lucky. It was the really bright, creative people among my peers that hurt the most. And we were all very young and malleable and eager to please; it took me years after I’d escaped to understand that I had a right to feel angry about how I had been used, and many of my peers never figured that out at all.
Yes, I’ve written a lot of intellectual arguments for open source. And they’re both true and sufficient. But now hear the emotional subtext — what lights the fire beneath me, personally, when I make those arguments. And that is this: nobody, ever again, should have to eat that kind of shit. Never again! If it takes seizing control of the craft of programming back from the suits, that’s what it it takes. If it takes blowing the entire system of production to smithereens…well, then it’s long past time.
I have all the usual reasons open-source fans give for refusing to have anything to do with Microsoft or any other proprietary tools: I don’t trust their reliability, I don’t want to be in a single-vendor jail, I won’t have my data locked in closed file formats, I refuse to write in languages that aren’t cross-platform portable…and so on. Those are rational reasons, and I have rational flexibility on them. On that level, it is possible in principle that I could be persuaded by cool features and a winning cost-benefit ratio. Or even if somebody offered me a sufficiently huge pile of money — enough, say, to finance a space program run from a Bond-supervillain-style fortress on my own Caribbean island.
But it doesn’t matter. Because there’s an emotional place where I have no give, and that is in is my visceral, steaming hatred of the production system that Microsoft exemplifies. I refuse to support it in any way, no matter how shiny the products look to other people. I will have no part of helping it do to the young, malleable, innocent programmers of today and tomorrow what was done to me and my peers.
Because two decades later, my scars still ache.