HN2new | past | comments | ask | show | jobs | submitlogin

I resonate somewhat with the gripes about Emacs' crustiness. But on the other hand, I don't understand the complaints about it being ugly. I haven't heard that for a while. I'd like to think that my Emacs is quite pretty:

http://jlongster.com/s/emacs.png

There are things Emacs can do which VIM will never do. And vice-versa. They are separate editors embracing separate philosophies.

Lastly, keep in mind that this is 40 year old software, and considering that it's done a great job keeping up with the times.



I think most of the "ugly" gripes come from people who either don't know how to change the font or haven't bothered to turn the tool bar off.


That's true. I'm considering making a few screencasts that show how go from nothing to a full Emacs installation/customization on different platforms. I think that would be neat/fun.


Please do. Bonus points if you include something about Vimpulse (http://www.emacswiki.org/cgi-bin/wiki/vimpulse.el) to entice vim users to give it a try.


Cool, I haven't tried that library. I use the built-in vi-mode which does basic stuff.

Please check back with http://jlongster.com/ in a few months, I have plans to start doing this kind of stuff there.


I've added it to my calendar. I'll ping you at the end of July if there's nothing there at that point :).


I'm not trying to be snarky here, but if you change the font and turn the toolbar off what's left of the design?


Design means more than just visual design and graphical interface. For example:

    M-x <function_name>
Executes any interactive function. Any gui-based editor will ultimately be limited by the knobs and switches that can be crammed into various graphical interface elements. Emacs doesn't have that limitation. That's where the learning curve is steeper-- you have to search for function names rather than poke around menus or toolbars, but once you've learned the function name you can map it to a key, put it in your .emacs, or call it from another function.

Much like unix, this is how emacs has managed to stay relevant despite the popularity of the IDE market. It's easy to configure and extend by defining abstractions and composing functions.


If only you could configure Eclipse until nothing was left of its design!


I've actually gotten Eclipse into a fairly clean state: http://i.imgur.com/ln2N8.png

Most of the clutter is gone, but all of the nice IDE features (refactoring, immediate error detection, etc.) are still there. It's a nice way to work.


I run VS2010 in a similar way, though it is much easier to strip off the widgets.

Most of my co-workers don't understand how I can work that way. I tell them it's all about learning (or modifying) keybindings.


> what's left of the design?

Exactly.


Then you're talking more usability than design. In that regard emacs doesn't exactly rate well.


Emacs is very usable if you can make a few reasonable assumptions about the user. Obviously it's not perfect (see the discussion of changing fonts in the originally posted blog) but making those assumptions about the user allows for a great deal of capability.


I agree entirely, but capability and usability are unrelated concepts. I don't doubt for a moment that emacs is immensely capable, which is why it has a large following.

Usability is, according to wikipedia "the ease of use and learnability of a human-made object" Ease of use and learnability isn't exactly emacs strong points. As an obvious example you need to learn emacs-lisp to unlock its potential.

Capable: absolutely. Easy to use: definitely not.


Capability and usability aren't entirely unrelated. Applications with limited capability have no need to distinguish between initial usability and advanced usability. Applications with lots of capability must make tradeoffs, as ease of use and learnability aren't merely measures of the initial experience.

Emacs is easy to use and easy to learn, once you learn some of its basic quirks.

It's easy to use:

To start emacs, just type emacs. To open a file, type C-x f, then the path to the file (you can use tab-complete to enter the path). This automatically opens the file in a new buffer. You can open as many files as you like, and switch between the buffers with C-x b. To split the screen and see two buffers at once, you can use C-x 2 or C-x 3 depending on whether you want them aligned vertically or horizontally. Text entry and basic editing use most of the same conventions as the unix command line. C-a to go to the beginning of a line, C-e to go to the end, C-k to kill, C-y to yank. C-s forward-searches for a word. C-s again searches for the next instances.

Emacs is easy to learn:

To get a list of keybindings, such as the ones I mentioned above, type C-h b. This presents a list of hotkeys mapped to functions. The function names are descriptive. To get a more detailed description of any function in the list, simply put the cursor over the function name and hit enter. Press q to go back to your buffer.

Navigating the buffers can get complicated sometimes, and the function names can be archaic and definitely take some getting used to. There's also a lot of information available and it can be challenging to sort through it. But, all that information IS available and usually easy to get. That makes it easier to learn in the long run.

Also, to address your example, you don't need to know emacs-lisp to start appreciating its capability, and once you do start customizing basic configuration it's not too much more difficult than any other configuration language. From my .emacs, for example:

    (global-set-key "\M-[" 'start-kbd-macro)
    (global-set-key "\M-]" 'end-kbd-macro)
    (global-set-key "\C-b" 'switch-to-buffer)
It's very straightforward, once you know what "\M" and "\C" mean. At first, you don't really need to know what the single quote means, just that it's necessary. For something less intuitive:

    (setq inhibit-splash-screen t)
It's still pretty clear what that does.


> the ease of use and learnability of a human-made object

So usability has two separate definitions.

> Capable: absolutely. Easy to use: definitely not.

Actually, using Emacs is quite easy to use once you've learned it. Most operations can be done with much greater economy of motion than its main competitors. (vim excluded) It's the learnability aspect where it fares poorly, at least in the context of users who have been raised in a WIMP paradigm.


Seems like there is a third category lurking in here.

I find it easy to use--i have it on every platform and use it for almost all of my tasks.

But the third category I think you are leading up to here is the difficulty in learning. I admit that is not small.


But if one insists in staying on the fence, one has viper and vimpulse: http://www.emacswiki.org/emacs-es/Vimpulse


>They are separate editors embracing separate philosophies.

What are the two different philosophies?


From my limited experience with both: Vim is for editing text efficiently, Emacs is an allrounder. This is easily shown when you look at how they do things. In Emacs you have to press ctrl and/or alt for almost every keyboard shortcut. Personally I prefer the Vim way of having different modes, which let me keep my fingers in a comfortable position, while typing at full speed and utilizing all common, easily reached keys for shortcuts.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: