Why Emacs?

In the process of hacking some C# compatibility into my Emacs config I came across this page. The page itself is moderately interesting and another entry in the guys blog held the solution to a problem I was facing. But the thing that jumped out at me were some of the comments. The most egregious was

You are so lame man… you spent all that time just so you have MOST
of the features you get for free on the C# express. lol you FAIL at
seeing the big picture

Yes, there are features in Visual Studio that Emacs lacks. I’ll give him that. But then Visual Studio lacks the quality that Emacs has. The problem is to get at this quality you can’t have this poster’s attitude:

The problem is that while emacs and vim will always be flexible, they >require a lot of knowledge, time etc… to gather stuff.

And while you may know and enjoy writing elisp code, I simply refuse >to learn something specifically for one program. I could live with >python or ruby these days, or with a human-readable nice and easy >special language, but learning lisp just so that i maximize using >emacs sounds like sure overkill, especially cuz i would know i >wouldnt really use lisp outside from that (sorry lispers)

The power of Emacs comes from Elisp1. This is similar to the problem with this comment (and a few others like it)

Hey you do know that their is an Emacs mode inside of VS 2005 and >higher; just go to Tools ->Options-> Enviroment->Keyboard and select >Emacs.

It’s not the keyboard shortcuts that make people use Emacs. It’s the control that Elisp gives you. And I don’t just mean writing huge amounts of code that implement huge features like JDEE2. It’s little things. Like today I needed to insert a new function into a COM interface and then shift the id numbers of all the following functions up one. I could have just gone through and typed all the numbers but instead I just had to do a regex replace from “id(([0-9]+))” to “id(\,(+ 1 (string-to-number \1)))” and boom it was done in a split second. A lot less time, including that spent writing the regex, and way less brain numbing. And that’s a pretty minor example, once you get the hang of it you start automating all sorts of little things that bug you that are too specific to be something the MS, Jetbrains or the Eclipse folks are going to bother dealing with. And, at least in my experience with Visual Studio, adding thee features to the IDE would be more pain then it is worth.

Maybe the best way to put it is: do you control what your tool can do or does your tool control what you can do? 3


  1. Though it’s funny, if the poster actually went out and learned a proper lisp like scheme or CL then the complaint would be coming form the opposite direction given the craptastic dialect that Elisp is. 

  2. Though I bet it’s a lot less code than you’d write in VBScript or whatever it is that Visual Studio is using these days. 

  3. Insert Beavis and Butthead snickering here if you are so inclined. 

Advertisements

Leave a Reply

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

WordPress.com Logo

You are commenting using your WordPress.com 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 )

Google+ photo

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

Connecting to %s

%d bloggers like this: