Emacs for user applications?

I was reading this article on programming languages used at Amazon, and stumbled on an interesting part (in the Lisp section, about half-way through in the article):

Shel wrote Mailman in C and Lisp. Emacs-Lisp. [...]

Mailman was the Customer Service customer-email processing application for … four, five years? A long time, anyway. It was written in Emacs. Everyone loved it.

People still love it. To this very day, I still have to listen to long stories from our non-technical folks about how much they miss Mailman. I’m not shitting you. Last Christmas I was at an Amazon party, some party I have no idea how I got invited to, filled with business people, all of them much prettier and more charming than me and the folks I work with here in the Furnace, the Boiler Room of Amazon. Four young women found out I was in Customer Service, cornered me, and talked for fifteen minutes about how much they missed Mailman and Emacs, and how Arizona (the JSP replacement we’d spent years developing) still just wasn’t doing it for them.

Has anyone else ever done something like that? Has anyone ever developped an application to be used by non-technical users (customer service people, secretaries, HR people, etc.) using Emacs? Would you care to share your experience?

I have to admit that I have no experience writing complete Emacs applications, but I think I like the idea for many reasons:

  • Emacs is free: Emacs costs nothing and the whole source code is available, so the cost of using Emacs is mostly training people, which you can’t get out of, with any technology.
  • Emacs is text-based: Emacs is completely usable by using only the keyboard. This means higher productivity from most employees who’ve spent a few weeks/months using the application. I think I already talked about this a couple years ago, but in my village, there are two video stores: one used a DOS-based system for rentals and the other used a GUI-based system. The people using the DOS-based system knew EXACTLY which keys to press to input a rental. On the other hand, the GUI application people had to use the mouse to point to where they wanted to input information. Care to guess who were the fastest? Yeah, DOS people. Therefore, if an application written in Emacs implements keyboard shortcuts for all functions, people are naturally going to be faster, because they know the sequence by heart.
  • Emacs uses Lisp: although it’s not the best Lisp around, Emacs Lisp still has more interesting features than more modern languages, like Java. Lisp is also known to be more productive than Java, so once your programmers are trained with Emacs Lisp, they will surely be able to produce code faster
  • Emacs is responsive: we’ve all heard the jokes like “Eighty Megabytes And Constantly Swapping” or “Emacs Mallocs All Computer Storage”, but the truth of the matter is that Emacs is pretty snappy with a decent machine. The applications written in Emacs are sure to be more responsive than any web-application.
  • Emacs is stable: Emacs is more than 20 years old, is still being actively developped, has a very active community and I’ve yet to see it crash on me.

I think an application written in Emacs would be a very nice experiment with “regular” users. We know that technical users use many such applications: Gnus (mail/news reader), ERC (IRC client), Emacs w3m (front end to the w3m web browser), etc.

Anyway, people with experience in this domain, I would love to hear back from you.