« Noam Chomsky interviewed by Ali G | Main | Martins Tunde, Joy Ray and friends: Greed and Gullibility. »

May 7, 2006

Free and Proprietary Software: the Emacs Lock-In

Microsoft is pretty much out of my world, free software runs on my Desktop and I'm looking at a bright future full of flexibility. Never again will a vendor tell me how I run my computer system. Fantastic!

But guess what: With some free software, I find myself behind bars, in the same old vendor-lock-in situation that I got out just a few years ago. This time, it's not the license. Free software is more about just the licensing. It's the design of the user interface that's at fault when a free programs turns out to be proprietary. Why's that?

But let me start from the beginning and explain what free software is. Free computer programs aren't only free as in beer, but also free as in freedom. You're allowed and encouraged to change the program and pass the new version on to your friends. You're allowed to participate in its development, and sometimes, your needs as a simple user are heard! And most importantly, you're guaranteed that you'll be legally able to use the software in the future - with no fee, no strings attached. A guarantee that you don't have with bread-and-butter software like Word from Microsoft or a professional $1000 Stats package like SPSS: They can and will upgrade and force you to buy their new package to be able to run it on the latest operating system.

Started by Philosopher-programmer-activist Richard M. Stallman, the free software movement has changed the world. His assembly of low-level software tools from the GNU project forms maybe half the operating system of every Linux computer, and some of it helps people develop cool programs for those shiny, hot Apple Macs. Computer geeks of the world are in debt to Stallman and friends.

Unfortunately, GNU/Linux systems are not as easy to use as you would like them to be. There are many reasons for that. I'll point out one of them. Funnily enough, it's about free software actually being closed and proprietary.

Let's look at Emacs, one of the oldest free software projects. Used mainly by programmers and scientists, it's an editor that allows people to quickly and comfortably edit texts, programs and other files. Technically, it's very open. Everything is documented, and you can write your own little extensions in an elegant (Lisp) language that can be very powerful. It's a text editor that you can even play games in. Of course, it's free software. You're allowed to change the main program to make it better and re-distribute it.

Emacs makes you more productive - after a while. When I first started using it, Emacs was a shock. Even though I would consider myself a computer expert, having two decades of intense computer exposure and a degree in computer science, Emacs seemed difficult and impenetrable.

Why's that? Do you know what a keyboard command in Emacs can look like? "Press Control and x together, then press control and r together, then press the space bar, then 1." This will earmark a piece of text, so you can jump back there later on (with C-x C-r j 1 - logical, isn't it?). And there is no help while you're typing the command - it's not a series of menus or so. You need to remember the command - otherwise you'll have to look it up.

Those key commands are a pain in the beginning, but they're Emacs' virtue in the long run. It's what makes editing blazingly fast. No need to use the mouse. Your fingers will remember those commands soon, once you've figured them out.

Unfortunately, Emacs uses totally different key commands from what you're used to. If you're used to a Windows machine, you expect Control-C to copy and Control-V to paste. Not so in Emacs, where it's Win-W and Control-Y for historical reasons. Emacs has used the concept of temporary storage, a clipboard, long before operating systems have picked up and standardized the idea. But other applications have set the standards, and Emacs (in its default configuration) hasn't adapted.

Mind you, when I'm talking about you and me being used to certain user interface standards, we're not talking about computer illiterates and people with AOL accounts. They won't ever use a plain text editor anyways. But those of us who know are not afraid to write a little configuration script or implement a little Python program to test their latest scientific theory, we need text editors all the time. More so if you're a professional developer, working on things like web sites, database backend or computer games.

But we're not geniuses. We don't just know 500 keyboard commands out of the top of our heads. We rely on what we are used to. That means that people, once they've learned Emacs, will stick with it. Or be stuck with it.

And that's exactly where we touch the limits of the freedom of free software. When it comes to user interfaces, free software suddenly becomes proprietary. Here, the keyboard commands are only one thing that hinders me from switching to other software when I want to, and keyboard commands are relatively easy to change. What's much worse is that Emacs uses its own language. Not English, not the Computerspeak your average 2005 computer science graduate is used to. What's probably Win-W or maybe Option-W on most modern computers is called M-w (or: Meta-w) throughout in Emacs. Again, this happens for historical reasons: back in the days, keyboards on Unix machines came with a Meta key. Here's a few more examples for Emacsspeak:

Emacsspeakmore common idiom
Kill Cut (cut out selected text)
Save Copy
yank Paste (the copied text)
Find or Visit Open (a file)
Point Cursor
Key Bindings Keyboard Shortcuts
Frame Window
Window "pane", or part of a window
Faces Styles (for headings e.g.)

Confused yet? I don't know if there are any linguistic advantages in killing and yanking over copying and pasting. But since the turn-of-century philosopher De Saussure described the (arbitrary) relationship between words and their meanings, we know that language is largely a matter of consensus. We agree on meanings, codify them in words, and that's (part of) how we communicate. When two people start using different terms to mean the same thing, communication becomes more difficult. It's what happens between strangers, not friends, and it's the opposite of the alignment which allows us to solve our tasks, as psychologists at Edinburgh and Glasgow universities have recently suggested. Emacs and novel users on the one hand, and Emacs veterans and the outside world do not align.

What's happening with Emacs and some other free software is that parts of the user community insist on a terminology that is special to Emacs and meaningless in other contexts.

Sometimes, new technology is innovative and hasn't been adopted widely. Take Skype, for example, which uses a special but good protocol to enable people to make phone calls over the internet, or the iPod, which is the best-known MP3 player available. But such technology soon becomes proprietary: it is unavailable for others to use in their competing products.

Emacs terminology is an example of such a case. It started out because there were no words for the features Emacs had to offer. But now, everyone and their grandma are using several frames and windows and buffers in the application, but they call them differently. Emacs terminology has become insular. It's a classical proprietary system!

Emacs has a closed user interface. Once you've learned the codes, you'll stick with them because other editors use a different (standardized) interface. The same issue occurs if you are familiar with another text editor, say, BBEdit, TeXShop, TextPad, WinEdt, XCode, C++Builder. They all behave in very similar ways. Switching between them is easy, but switching to the free Emacs is daunting. Here, otherwise free software causes a perfect vendor-lock-in, without the need! Sometimes, people attempt to make Emacs more compatible with the outside world, for example as we've done with Aquamacs. But Aquamacs is available for the semi-proprietary Mac OS X only, because it's harder to nail down UI standards on GNU/Linux.

Emacs is indispensable. Not only because it's a productivity-booster, but also because we're getting so used to its interface. In effect, Emacs creates what Stallman and friends always wanted to avoid: proprietary software which cannot easily be substituted for an alternative. This time not for technical reasons, but because of the human factor.

The conclusion? Freedom in computing is more than a matter of the right license. It's a concept that should affect software at its design phase. Developers should work to make their software human-compatible with the standards of the platform it runs on.

Digg this!

Note: the author of this article is a friend of free software and uses his own distribution of Emacs daily.

Posted by dr at May 7, 2006 2:14 PM


Trackback Pings

Please use the following TrackBack URL:
http://www.davids-world.com/~dr/cgi-bin/mt/mt-tb.cgi/133

Comments

Post a comment




Remember Me?

(you may use HTML tags for style)