Re: the Emacs Lock-In
Lundi, novembre 30th, 2009Very recently I was reading one of the articles in wikipedia about software lock-in. I was a little surprised by how blog entries make into wikipedia as references. The article stated, that there was a software lock-in in emacs. Yes, I did not mistype it! They claim, emacs uses unusual shortcuts intentionally to make switch to other editors more difficult. As ridiculous as it may seem, I would like to react to the arguments in the referenced blog entry.
You can find the original article at the following address: http://www.davids-world.com/archives/2006/05/free_and_propri.html
“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.”
Except that in recent emacs-es you can actually select the text with the mouse and paste it with the middle button. It works as it would in any kde application. Also you can of course ask for the list of hot key-s
M-x describe-bindings
as well as you can (re)define any shortcut for any function
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
I think, the author completely misunderstands the concept of free software. Tell me, if you would, all these software with the same functionality just what is the point in switching between them? What possible good could it bring? The answer is of course: Any. The point of the free software that you can use/adapt any tool that has already been written. You only switch if you need explicitly different model. And so you shouldn’t have to learn, configure and switch all the time between software, you can just add the functionality to the one you use for all the rest.
Software lock-in comes almost only from licenses and formats. If you have a software that uses windows API? You put it in a virtual machine, set up a virtual network (socket) and you connect it with anything. What is the problem there? No1: The license fee you don’t want to pay and you shouldn’t have to pay. Problen No2: The missing functionality you shouldn’t need to switch to a new API just because of one missing function. You should be able to add it. You can do both with emacs.
The most common misconception I ever meet? It is different, so its worse. People make it all the time. When they switch to linux they are looking for they shortcuts, programs even fonts. The strength of the linux kernel, the gnu userland and as matter of fact emacs is, that they follow a different model and every time for them you should switch for the model and not for the “free windows”. If you want free windows you have free editions from visual c++, you have openoffice you have firefox even kde for windows.
You have similar software designed for the same purpose but using a different model:
- OpenOffice vs. LaTeX
- OpenOffice vs. Scribus
- nothing vs. Bash
- C vs. C++
- Python vs. Java
and the list could go on. These software are not replacement for each other and you couldn’t add a few features here and there to have equivalent functionality.
In conclusion I would like to tell this: If you think the middle way between emacs and other editors exists, try to design a new emacs on paper, and you may discover a few things:
- as with the terminology, you have listed almost all the differences the other 500 built-in functions have no “common name”
- as with the short cuts, if you change the ones you listed to windows-ish, the newcomers will not be able to use anything else (they won’t even know that they should look for some)
- if you change the feeling of emacs to standard windows-ish editor like, than the other half of the users will dislike all the changes.
Emacs is not perfect, it’s far from it, but is you want to make it better you shouldn’t want to make it like other editors. Because it is for that other editors don’t/can’t do/won’t do that you have started to use emacs in the first place.