archives

A programming editor to replace emacs?

Long ago, when I started programming, I used whatever editor was built into an IDE.

When I began programming without using an IDE, (which I did because I started using languages for which no IDE was available) I usually used an editor called Brief. Brief was a good editor, and had a lot of functionality, even rudimentary macros. I had tried emacs and very much disliked it for its flouting of user-interface conventions, non-standard keybindings, ridiculously awful help system interface with no obvious way to get back to the buffer you were working on, etc.

When I started professionally dealing with Lisp code, I had to learn Emacs; there was simply no other accepted solution for Lisp code. I worked on several programs using Brief, but there was an actual policy decision that in interests of uniformity and mutual readability of code, everyone had to use the same editor. After a few weeks of hating Emacs more and more intensely, I finally habituated to the backwards-martian interface, and ever since then it has been the easiest and most productive editor for me to use. In fact I often use it even when a nice IDE using some other editor is available.

But nearly everyone who is new to Emacs hates it passionately, just as I did when I was new to it. When you tell them that even basics like "cut" and "paste" have non-standard keybindings, their next question is usually something like 'why the hell are we using this piece of crap.' In the absence of a job requirement or similar pressure, few persist in learning it.

Now comes an observation. I have looked at hundreds of thousands of lines of Lisp code in dozens of dialects, and the indentation style (with the sole exception of McCarthy's initial papers on Lisp) indicates that everyone who writes it, without exception, is either using Emacs, or using something that implements *exactly* the same automatic indentation algorithm. And I don't know of anything else (bar deliberate Emacs clones like ZILE which get just as much UI hate, and for the same reasons, as Emacs itself) that implements *exactly* the same indentation algorithm that Emacs' lisp-mode uses.

Conclusion: (at least) 95% plus of the people writing Lisp code in the world, in all dialects, are using an editor to which the mainstream response is ... um, unenthusiastic at best.

Lisp users consider Lisp (in many dialects) to be a truly excellent language, and cannot understand why it isn't more popular. Other people sometimes try it, and I have heard more than one abandon Lisp because of Emacs hate. ie, the perception that you can only work on it using Emacs, combined with the perception that Emacs "sucks, hard." It is hard to avoid believing that Emacs hate may be one of the major forces holding Lisp back.

So, when I am faced with newbies whom I want to sell on the language itself, what useful, completely-featureful, programmers' editor with a standard UI can I use to demonstrate the language without alienating them? What editor should I be learning if I don't want to scare or alienate or intimidate or just distract people from the language or program itself?

What editor would a Lisp IDE developed by people who cared deeply about acceptance of the UI by the mainstream use? what features would allow some UI-standards compliant text editor to fully replace Emacs for Lisp programming purposes? And does anything out there actually have them?

Ray

(edited: de-capitalized things because capital letters apparently upset someone.)