Code Freedom: Why Does It Matter, And To Whom?

Today’s XKCD:

I’m no Richard Stallman (who the guy with the beard is obviously meant to be), but I occasionally get the same sort of eye-roll from people when I tell them that I don’t do PowerPoint/Word/Excel, I don’t have access to a Windows machine (or to a Mac for that matter), I don’t want to, and I don’t want an iPhone (or an i-anything) either.  The eyes start rolling when I try to explain why I’m not interested in computing that way.  I’m sure it sounds very pointlessly ideological to people for whom computers  (and computer-based technologies) are just appliances, tools suited for certain jobs.  You don’t get political about your dishwasher.  Why is a computer any different?

I don’t agree with Richard Stallman about everything — he’s pretty single-minded and absolute — but I do admire the guy.  He’s The Philosopher of Free Software (“Free” refers to “freedom”, not price in this context).  Since the 1970s, long before software was an issue in the lives of more than a few thousand people worldwide, he’s been advocating a view that is often referred to as “Freedom to Tinker”:  Anyone should have the right to inspect and modify computer code.  What Stallman saw with remarkable prescience, was the outline of an emerging conflict:

  • Computers are different from other appliances.  Their general-purpose nature, a consequence of their programmability, means that they have the potential to transform whatever they touch — technologies, communications, people (this is a commonplace now, but wasn’t back then).  The power that they can engender, in the hands of ordinary people, means that they can be a tool for freedom, in the way a toaster could never be.
  • It is very easy to deprive people of much of the latent power of computers, even computers in their own possession, by allowing them only the (inflexible, largely unintelligible) binary executables of the software that they run, while hiding the source code where the functionality of that software is expressed, and may be understood and, where necessary, altered.

If all software were distributed in binary form, the possibilities for collaborative tinkering by communities of programmers would be essentially snuffed out, and with it the power that those communities could otherwise exercise through “their” computers.  Stallman’s approach to forestalling this disaster was a bit of legal ju-jitsu:  The GNU General Public Licence (GPL).  This is a license that a programmer can attach to a piece of source code that enforces source code distribution.  It says, in effect, that anyone may use, compile, modify, and run the code any way they like.  The only thing they are not allowed to do is distribute binaries based on the code without distributing the source code itself.  That restriction includes any derivative products resulting from modification of the code.  That is, if you improve the code, you may use those improvements for your own purposes, whatever they may be, but you may not distribute them (commercially or otherwise) without “showing your work” by distributing the modified source.  Oh, and that modified source must also be licensed under GPL.

This trick protects those programming communities.  Successive versions of the GPL (and other so-called “open source” licenses that arose to satisfy similar but differently-weighted priorities) ensured that anyone writing code need not fear that anyone else would improperly appropriate that code.  The resulting incentive system for collaborative programming communities is a “virtuous circle” in which people improve code the way communities of scientists improve ideas and knowledge — through sharing and peer review.  The communities that flourished under the protection of this communal guarantee are now too many to enumerate, and include the folks who produce the GNU tools, Linux, Apache, OpenOffice, and many more.

It was genius, really.  Stallman gets a bit of recognition for his efforts, although nowhere near what he deserves.  Unfortunately, he has a way of alienating the people he’s trying to persuade, through a rather dogmatic style and a tendency to state his case in the most radical and un-nuanced and uncompromising terms.  He’s not the world’s most effective advocate.  He’s more like a man blessed with the vision of a biblical prophet, and cursed with the tactical acumen of a small boy.  In consequence of which, he tends to get a lot of eye-rolls from people who just want to get work done.

I like the freedom to tinker with my computers.  I spend a lot of time making them do interesting and unusual things.  For the privilege of being able to do so, I keep a warm spot in my heart for Stallman, despite his occasional exasperating excesses.  I’m pretty sure computers would be a lot more like toasters if he’d been less of a proctological affliction at that crucial time when computers were moving out of specialized environments and into people’s lives.

For many people, that might not be important, but for me it is.  Not having full control of my computers is the most frustrating, enraging condition of computer ownership that I can imagine.  If you’d like an analogy, imagine if automobile manufacturers could seal car hoods so that nobody without authorized access could get to the engine.  Authorized dealership mechanics could get in, but owners would be shut out.  For many people without automotive skills (I’m one of them) it wouldn’t matter.  I’m more likely to do damage my car than I am to fix (or even correctly diagnose) a problem with it.  A mechanic usually opens my hood anyway, so for me it wouldn’t be much of a change.  But what if you’re a car geek?  What if you like to change your own oil, to do your own tune-ups, to fix your own electrical problems?  How would you feel about an auto manufacturer who shut you out from the engine of your own damn car, “for your own safety and for the integrity of your automotive experience”, say?  Would you buy a car from that company?

The reason I’ve been thinking about this lately is that there’s another transformation in progress, another change point that is creating the same risk that Stallman worked to forestall in the 1970s.  Computers are now going from being everywhere to being, really, everywhere.

What I’m talking about is phones.  In case it has somehow escaped your attention, mobile phones aren’t actually phones anymore.  What they are is general-purpose, networked computers, with a telephony capability bolted on the side taking up a small fraction of their computing resources.  This is most obvious in the “smartphone” category, where phones now typically sport real or virtual QWERTY keyboards, and compete on the basis of the strength of their App Stores.  But it’s true of all mobile phones, really.  There’s a small networked computer in there, running the camera, driving the GPS unit, managing the contacts, the SMS, the ringtones, and so on.  Look around you:  you’re probably standing within 50 feet of at least a dozen computers of the sort of capacity that would be the envy of the programmers of two decades ago, and they’re sitting in belt holsters and pockets and purses.  They’re  everywhere.

As a geek, I find the latent possibilities very exciting.  At the same time, I’m offended and outraged by the level of control that some smartphone manufacturers are insisting on retaining over their products.  Yes, I’m looking at you, Apple.

Apple appears to be gazing at the opportunities created by the new mobile computing with the same single-minded sociopathic rapacity that Microsoft brought to desktop operating systems.  The company is intent on creating a dominant technological ecosystem in which they — and their partner wireless carriers — exercise more control over iPhones than the customers who appear to believe (without much justification) that they in fact own those phones.  You have to break the iPhone firmware if you should have the temerity to wish to use the phone on a different wireless carrier.  If you’re willing to perform that (risky, technically complex) operation, Apple will try its level best to brick your phone next time it pushes out a firmware upgrade.  You need Apple’s approval to load an application onto the phone, and developers need Apple’s approval to make such an application available.  Would you like to modem-tether your laptop to your iPhone?  No, sorry, Apple won’t allow that, it messes up their deal with AT&T.  VOIP?  Nope, same as above.  And on, and on.  Apple makes the rules to suit itself, iPhone users just get to live with them.

So we have a company that sells a general-purpose networked computer configured in such a way that developers are hogtied over a barrel, and customers have little control over the software and none over the ISPs providing network connections for their own damn computers, and all this “to provide a more satisfying user experience”.  Why would I buy a computer from that company?

I’m hopeful their model of the new computing environment will fail — the rise of Android, with Google’s vast resources behind it, seems at the moment to offer some guarantees that at least Apple’s model will not prevail.  Even despite Apple’s despicable patent lawsuit against HTC (a transparent effort to strike at their competition using patents that are comically vague and obvious even by the deplorable standards of software patents), it seems likely that there will be an open commons for collaborative developer communities to pull off amazing stunts not now imagined by device manufacturers.  I certainly hope that’s our future.  The alternative doesn’t bear thinking about.

Apple is free to do whatever they like with their own devices.  People are free to go live in Apple’s tastefully-decorated prison, and be soothed by their charismatic warden.  But I would never accept an iPhone, even as a gift.  The price would be much too high.



3 Responses to “Code Freedom: Why Does It Matter, And To Whom?”

  1. Mark Galassi Says:

    Nice entry, Carlo. I would point out a couple of things:

    * the “mechanic” analogy can go further. I don’t take my car to the dealership: I take the car to my own mechanic. So even if I’m not a car geek, I still car that there is “freedom” to have my car serviced by someone who is not the vendor.

    * The computer analogy is that even a non-geek gains a *lot* from software freedom: they can hire a consultant to make changes that are not in line with the original vendor’s marketing agenda.

  2. Carlo Graziani Says:

    You’re right about that. It’s an odd thing. There are many other sectors, even some recent high-tech ones, where behavior analogous to that of software manufacturers is simply not tolerated by the courts.

    For example, a few years ago, Lexmark tried to lock down their printers so that third parties couldn’t supply ink cartridges, by implanting an authenticating chip in their own cartridges. Then they tried to use the DMCA to sue ink cartridge companies that replicated the technology for “circumvention”. A Federal court administered Lexmark a right ass-kicking for their trouble.

    So physical device manufacturers may not lock out third parties from the devices that they sell to their customers, but software manufacturers may do so with impunity. An this is a consistent legal theory because…?

  3. Paul Ricker Says:

    It will take another corporate giant to decide it’s in its interest to support free software on phones… Google is not as close as it could be, but it’s definitely the most successful at it.

    Posted from my Nokia N900…

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: