Tell me more ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'm sorry this is subjective, but I'd like to understand what's so great about it and why people who identify themselves as hackers seem to love it so much.

share|improve this question
11  
I was going to ask the same question, but with vim. – FrustratedWithFormsDesigner Feb 4 '11 at 14:58
I don't care if its made CW I don't know how to do that though. – iterationx Feb 4 '11 at 18:12
5  
@Martin York Because it is the right word for the context. – iterationx Feb 4 '11 at 18:56
2  
I truly doubt that the double meaning of Hacker is a problem for anyone here, and as @iterationx says, it is precisely the right word. – Adam Crossland Feb 4 '11 at 19:16
2  
What, you haven't heard? xkcd.com/378 – Joe Internet Feb 5 '11 at 3:54

closed as not constructive by Josh K, Walter Feb 5 '11 at 18:38

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or specific expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, see the FAQ for guidance.

10 Answers

Hackers love Emacs because it lends itself to hacking. Each individual user can write code to make Emacs behave exactly how they want it to. The fact that it is (largely) written in and extended with LISP is just icing.

share|improve this answer
4  
I believe that the primary reason you can write code to make Emacs behave is because it is written in Lisp. The "convert-data-to-code" step is much tinier than in other languages. – user1249 Feb 4 '11 at 15:52
I would make a point of possible historical interest here. Before emacs there was TECO. TECO macros look even more like line noise that perl code does. TECO is just plain GLORIOUS. – leed25d Feb 4 '11 at 18:09
@leed25d. I remember TECO well-enough. A great deal of my early programming experience was on a PDP-11 (running RSTS). Warning: there is a Windows port available at almy.us/teco.html – Adam Crossland Feb 4 '11 at 19:14

In the first place, it's a text editor. It isn't a word processor or desktop publisher or anything like that. It concentrates on text editing and does it well.

In the second place, it's a hands-on-keyboard editor. You never, for any reason, have to remove your hands from the keyboard to use a mouse. This not only makes it more efficient for anybody who learns how to use it well, but means you can use it in a terminal display with no loss of efficiency. You can always edit on a remote platform, no matter what you're using as a terminal or whether you've got a high-bandwidth line.

In the third place, it's extremely programmable. Emacs is actually a specialized Lisp interpreter that an editor has been written for, and it can be extended in that Lisp. It's perfect for anybody whose idea of customization is hacking the source code.

There's also the commitment factor. Learning emacs properly, using most of the built-in editing functionality and being able to customize well, takes a lot of work. People tend to be attached to anything they've put a lot of work into.

Determining how much of this applies to vim is left as an exercise for the reader.

share|improve this answer
1  
I've never heard of a single text editor that wasn't completely hands-on-keyboard. Do you know of any? Sure, they allow you to use the mouse (as does emacs), but it's not required for any text editor i've ever used. – Mystere Man Feb 4 '11 at 19:07
I've seen one or two where "more advanced" editing features required reaching for a mouse, to navigate menus. Or, for that matter, selecting text. – Vatine Feb 5 '11 at 15:05

If there is anything you do not like or just want differently, you can fix it!

And fixing is not just changing a configuration setting, but providing the replacement code, and the whole mentality of Emacs is to support you doing that. That it can also edit text files is just a side-effect.

Built-in debugger. Help everywhere. The list goes on and on.

share|improve this answer

It's available everywhere and on every platform. Has been for decades and I bet it will be here long after me.

So, Emacs is a safe bet to invest time and energy to learn one editor really well.

Say, a new command a day (or in a week) and you're an expert in a year. With few more years those emacs-command-sequences are hardwired into your brain. You just think about how you would like the text to be modified (and your imagination sets the limits), and your fingers automagically dance on the keyboard -- and the flow just keeps on flowing.

I guess, Emacs at its best, is like an instrument. When you master an instrument, you do not think about your hands or fingers -- you just go with the music.

To me Emacs is the closest experience of "direct" interface/link between man and machine :)

Edit: Almost forgot: SLIME

share|improve this answer
Ah, but have you been trained in Vim? – Mark C Feb 4 '11 at 18:53
@Mark C: Yes, for some "break the glass in case of emergency" scenarios ;) No just kidding. Vi(m) is a great editor too, but I've invested my years in Emacs, so its hard to change now. Back then, I just happened to choose Emacs. – Maglob Feb 4 '11 at 19:07

Emacs lets you keep your fingers closer to the home row so that you can do your navigation/selection/deletion/whatever and get back to typing quicker. Also as Adam Mentioned, you can hack at emacs. They tend to like Vi as well...but usually only one or the other...never both. It's like Star Wars/Star Trek, Gangsta Rap/Country, City/Country, Strip Clubs/Church, White Sox/Cubs there are a few people who like both but the majority pick one and wonder how anybody can tolerate the other.

share|improve this answer
2  
Wordstar was much, much better for keeping fingers to the home row, and so is vi. – user1249 Feb 4 '11 at 15:11
I haven't picked a side yet was just stating some of the reasons people choose them ;) – Mike Brown Feb 4 '11 at 15:13
2  
I think one of the reason emacs users hate vi is because when we go to save our stuff in vi using the key combos so ingrained in my brain that I cannot even tell you what it is, it locks up the terminal. – Peter Turner Feb 4 '11 at 15:40

Basically it's very powerful, proper hands-on and it can do almost anything you can think of if you want it to. Not only that but there are existing customisations available that enable you to do most of those things already if you search around a bit.

Now I'm neither expert enough nor intensive enough of a user to have a detailed explanation of the things that make it so pwoerful, but this article of tips for effective Emacs use gives some ideas for things that it can do that are useful to use as programmers. I think on the whole Steve Yegge's Emacs rants got me interested in using it in the first place when I was looking for a text editor for development and I've found it to be have a bit of an edge over Vi for the things I want to do ever since, although I use vi from time to time if I'm on a console somewhere.

share|improve this answer

I will go on record as saying that David Thornley's answer (among others) has things exactly backward. Far from being a single-purpose text editor that only does text editing, emacs is exactly the opposite: it's really an operating system with a integrated programming language, user interface/windowing toolkit, a quite a few pre-written applications for everything from mail reading to code analysis to diagramming.

Much as Windows provides an edit control and Notepad that's little more than a really thin wrapper around an edit control, emacs has an edit control and enough of a wrapper to make that directly accessible to the user. The obvious difference is that where the Windows edit control (and therefore Notepad) has extremely limited capabilities, the emacs edit control is extremely versatile and feature rich. Where Windows allows/requires you to install a language of your choice to do programming, emacs has it built in.

Emacs provided a flexible, but still reasonably standardized user interface toolkit long before anything else on Unix even came close. Even now that there's quite a bit more available otherwise, if you want to do something even vaguely similar to text editing, you can probably write an application to do it more quickly and easily in emacs than with most other tools.

share|improve this answer
@iterationx: How would you define "OS" in a way that excludes it, but allows the things that normally go by that name? – Jerry Coffin Feb 6 '11 at 14:25

It has modes for everything I could want. If it doesn't have the mode I want, I can extend the system to do what I need it to do.

share|improve this answer

I don't know but as many hacking tools it tend to be because of osmosis from previous programmers, since some old hackers/programmers used vi or emacs, and they have written many articles and therefore documentation for them, a lot of other hackers/programmers read that, try to use emacs and then get use to it, and the cycle begins again... At least that was happened to me when I first started to use vi (I believe that with emacs is the same): I have read an article about it in a linux magazine, started to use it, and them I've already written something about it in a discussion board, and also caught the attention of other developers to it, and the cycle continued.

share|improve this answer

I used to be not into emacs. Then I started working with about 4 machine setups in the course of a single day, and I was tired of having to think about which editor went with which OS. (Desktop Linux, CLI Linux, OSX, XP). I looked at vi and emacs. vi is not for me.

I appreciate emacs in several ways. Let me count them for you... /badjoke

  • Runs everywhere in a fairly OS-native mode

  • Active community

  • Supports every language type I've ever had to use

  • Almost never needs restarting.

  • Massively memory efficient compared to other IDEesque tools

  • Plugins are (1) relatively easy to write and (2) install. Lightyears beyond any other tool I've ever dinked with.

  • Awesome integration with Common Lisp. Lightyears ahead of other tools.

  • Key remapping is brutally easy, so if you have a nonstandard keyboard, it makes life much easier.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.