Hacker News new | past | comments | ask | show | jobs | submit login

There's also http://emacs.sexy/



The "How to Learn Emacs" infographic that's linked a little ways down on that page includes a bit of attitude that drives me nuts:

NOTE: The Emacs tutorial has lots of weird terms: "Meta key", "frame", "buffer". This is because Emacs started a LONG time ago. Don't worry, you'll get the hang of it with practice.

I have no idea why we make people jump through the hoops of learning archaic terminology, rather than evolving the software to use the terms people actually use today.

The Meta key is called the "Meta key" because that's the label that was on the keyboards of the Lisp machines in the MIT AI lab when Emacs was first developed. It's been thirty-plus years since that key was found on anything close to a significant fraction of keyboards in use in the world. There's no evidence that it's ever going to make a roaring comeback, either.

In other words, the Meta key, as a key, is dead and gone. It is literally as dead as disco! And yet the name persists, even though the way people have interacted with the "Meta key" for decades has been to press a key labeled something other than "Meta."

So: why hang on to a dead word? It serves no practical purpose, and does active harm by confusing people new to the editor.

But no, rather than update our terminology so it bears some resemblance to the world we actually live in, we hang on to it and tell newcomers that to learn Emacs they're just going to have to get used to pretending they're working on a space-cadet keyboard, because that's The Way It Has Always Been Done. Sigh.


> The Meta key is called the "Meta key" because that's the label that was on the keyboards of the Lisp machines in the MIT AI lab when Emacs was first developed.

You have your cause and effect backwards. TL;DR: The Lispm's bucky keyboard simply extended existing practice.

Emacs predates the Lisp machines (CADRs in this case), and was originally written in TECO. Originally escape escape would open and close a minibuffer in which you could simply enter raw TECO. The Knight TV system had a custom keyboard used by us at MIT AI (and at Stanford AI for their own, slightly different TV system) had a Meta key which was used to invoke the minubuffer with a single keystroke (meta-altmode, mapped to escape when using ASCII) which later turned into direct "long" commands (M-X commands) and a wider keyspace.

In those days most programs on the PDP-6 & PDP-10 used six or seven bit bytes (though byte pointers could stride by 1-18 bit bytes) but the KTV was built on a PDP-11 which had 8 bit bytes, so meta was trivially available. FWIW the PDP-11 was memory mapped into the 36-bit PDP-6 through an arcane process I have thankfully forgotten.


Because the terminology is tied into the code in ways that would cause incompatibility with past code if changed. For example, emacs uses "frame" to mean what we now call a "window" and vice versa, and all the functions for interacting with windows and frames reflect this usage. If one just did a blanket search-and-replace swap of window and frame throughout the entire Emacs codebase and documentation, you would probably have a working Emacs, but all external packages and customization code that interact with windows or frames in any way would now be broken. You can't just update the documentation but leave the code as is, because then you have to start telling people ridiculous things like "switch windows with 'other-frame' and switch frames with 'other-window'", which isn't going to be any less confusing that what you started with. Elisp is a dynamic language, so you can't set up some sort of name-translation layer and use it for backward-compatibility with old code (that code could have a reference to an old name inside a quoted form, or even a string).

And the window/frame term swap is only one of many such examples. So basically, you could make your own Emacs that uses modern terminology and is completely incompatible with all existing 3rd-party elisp code, and then you could try to convince people to switch to it. But would having two equivalent but fundamentally incompatible Emacs/elisp variants be beneficial to Emacs as a whole? I doubt it.


This might sound a bit harsh - so basically condemning Emacs to obsolescence.

Emacs has a lot of hurdles in front of it: niche extension language, huge volume of customization before it becomes usable for your average Notepad++/Sublime user, etc., why add confusing documentation and naming on top of it?

The cost is huge, but IMO it is worth paying. It is a one time cost (refactoring, updating the documentation and many/most extensions) which could open Emacs to a much larger audience.


What I'd like to "condemn to obsolesence" is this tired narrative that insists that emacs needs to change to "get with the times." People were saying this when I starting using emacs in 2000, back when vi vs. emacs could still erupt into flame wars.

I left text editors for a few years (buried in Eclipse) but came back recently for Haskell and Go, and the community is ON FIRE. So much good stuff now: Melpa, flycheck, magit.

PS: "Meta" is fine. There's no standard "Alt" key anyway. On Mac, meta is often the "option" key but not always. It helps that Emacs has it's own term when switching between Windows, Mac, VNC of either, terminal, etc.


+1, fascinating to see emacs remain front page news 20+ years after I first started using it, and even more shocking, I'm still finding new features.

Multiple-cursors looks amazing.


"why hang on to a dead word?"

Because it doesn't refer to a key. It's more of a identifier. It would be considerably more confusing to substitute whatever key you think it should be. Cmd? Alt? Opt? Esc?

When I see "M-" in the literature, I know what that means and translate it to the relevant keystrokes. For instance, M-x for me is actually "C-[ x". I've customized it that way. However, we have a lingua franca for communicating commands despite the personalizations.


More people would be confused if you dispelled the term "meta" than are confused by its use today.

Similarly: there is no particularly good reason to use the term "lambda" for anonymous function constructs --- its use traces back to a typesetting quirk of Alonzo Church's. But here we are today, typing "lambda" like a bunch of chumps. :)


Disco is most definitely not dead. In fact, if you were to look at relative usage as "dead", and compared Emacs and disco, I'd put money that Emacs is deader than disco.

Disco lives on as house music, which has influenced current pop music so much it's scary. Disco didn't die, it just went underground. Like every other cultural phenomenon, it has its subcultures and offshoots. I could play you music released in the last year that you would probably think was released in the late sixties.


Disco is not dead, it's called "House" now.


Because Escape Meta Alt Control Shift of course :-)


This feels strangely relevant: https://rms.sexy/



I personally like the emacs.sexy icon better than the current one (Emacs 24.4 on OSX). I actually liked the older icon better than the current one too.


Ooh, and http://vim.sexy!





Join us for AI Startup School this June 16-17 in San Francisco!

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

Search: