Tuesday 3 June 2014

Emacs Lisp: Trabant or Kalashnikov?

A conversation with a programmer friend:

"I've been doing a lot of emacs lisp programming lately."

"That's cool; you like lisp. Is it more like Common Lisp or Scheme?"

"It's not really like either. By default it doesn't have lexical scope."

"..That can't mean what I think.."

"Yes, it can!"

Lisp is the Citroen DS of computer languages - at once ancient and futuristic, and oh-so non-mainstream. Emacs Lisp, which Richard Stallman (wisely) designed to be easy to implement and run efficiently back when computing resources were scarce, is like a sort of Cold War Eastern European copy of a DS - the shape is the same, and a lot of the cool stuff is there, but parts of the design are the result of really brutal engineering compromises.

And, yes, the language would be better if this wasn't so - but it probably wouldn't be worth using, because too few people would have able to use early emacs, and non-existent users can't write the libraries that draw more users in, who write more libraries, etc.


And you know, emacs lisp works.

Conclusion: I love you, emacs!


No comments:

Post a Comment