Bathroom Reading Material

The Eternal War

| Comments

Editor wars have been going on for many, many years. Many, many years before my time. Obviously, it isn’t a war in the traditional sense, but more of a war of words. Attitude and colorful remarks from both sides of the war have kept it raging behind the scenes and will continue to do so for the foreseeable future. Emacs and Vim are two very different text editors with two very different designs and philosophies. At their core, they’re both meant to help users edit text. That is where the similarities end. Vim is a very lightweight editor. It tries to do one thing and do it well — edit text. It does this well and always has. Emacs is a 500 pound gorilla powerhouse that is designed to do anything that anybody could ever possibly want. Its extension language is a Lisp dialect that was created specifically for the editor, and it’s quite capable. I think that Vim is a fantastic editor. That is the goal, right? To be a fantastic editor? It succeeds in what it sets out to do. Nothing wrong here. But Emacs isn’t just an editor. As far as I know, nobody ever claimed that it was a lightweight editor and that it tries to be what Vim is. It absolutely doesn’t. When you experience arguments between Vim and Emacs users, the primary argument from Vim users is that they want a text editor, not an operating system. And this is where I begin to get confused. Why is this objectively a bad thing? Is it a bad thing simply because it isn’t precisely what Vim users want? I understand their desire for minimalism, but that is what they want, and not necessarily what everybody else wants. I don’t see how it can be objectively bad for Emacs to not be limited in functionality. That is not what Emacs is meant to be. Personally, I enjoy being able to play Tetris, edit text, talk on IRC, read email, and run a terminal (and possibly even Vim itself from within that terminal) all within the same application. These are just a few examples of things that Emacs can be extended to do. A long time ago, how lightweight an application was was very important due to hardware and space limitations. Vim is very small, and Emacs is large®. Some people still make this argument. It’s 2011. Please, be serious. 20MB and a bit more RAM wont make very much of a difference. This is perhaps the silliest and most irrelevant argument of the bunch. I don’t have much to say about it. A useful metaphor is the cell phone. Believe it or not, people used to purchase those things in order to make phone calls whilst not near a land-line phone. Shocking, isn’t it? These days, the making calls part of phones are perhaps the most irrelevant part of the phone itself. We are now, quite literally, packing entire operating systems (that are actually extremely capable) and powerful hardware that, just a few decades ago, would have been considered magic, into our phones and distributing them among the people. But they still make phone calls, and a lot of them do it very well. These phones do a lot. They do things that are entirely unrelated to making phone calls. I use my cell phone as a modem and my internet is my phone’s internet. Phones are also wildly popular, and the vast majority of people don’t disregard cell phones, joke about them, or be hostile towards them simply because they offer amazing functionality. Some people, however, just want to make phone calls. People still use home phones. Land-line phones do one thing, and they do it well. We don’t throw them away simply because we have the hottest and most powerful cell phone on the market. This concept applies to Emacs and Vim. I think they coexist well, and I think that arguing about which is best is, at best, silly. They’re different editors designed for very different things. They have wildly different philosophies and whichever of those philosophies appeal to you the most decides which editor you will choose to spend your time with. Most importantly they both do what they do very well. There are some real and serious arguments that impacts one’s choice of editor. Emacs and Vim are very different when it comes to commands. Emacs uses key chords and Vim mostly uses words and letters. To close Emacs, you’d type C-x-C-c or control+x control+c. In Vim, you’d switch to command mode and type “:q”. Preference over one or the other often decides which editor someone will use. I like key chords. I can understand why others may not. In conclusion, I pose a question: why do we continue to ridicule each other? I die a little inside whenever I see arguments where there are jokes like “I don’t use Emacs because I only have 1TB of harddrive space.” and “I want a text editor, not an operating system.”. Wouldn’t we be more productive using whatever editor we please to get real work done rather than arguing about which editor we should use to get said work done? I think so. To people unfamiliar with the big two, I propose a piece of advice: try out both of them. Don’t go off and read arguments, because those arguments will almost certainly fill your mind with misconceptions and silliness that need not be there. Just yourself is all you need to decide which editor you like better. It’s you that will be using it, not them. They don’t have to like it.