Emacs “Plugins”

I’ve noticed a lot of Reddit posts and tweets recently that refer to Emacs packages1 as “plugins.” Perhaps I’m growing increasingly cantankerous in my old age or maybe I’m just tired and grumpy—waving your cane at those kids on your lawn can be surprisingly enervating—but this always sets my teeth on edge.

I think of plugins as something those other editors have: some code that uses a limited API provided by the editor’s author that can perform some predetermined, well defined tasks. Emacs isn’t like that. You can extend its code or even replace its code. The things we call packages are actually first class objects indistinguishable from the rest of Emacs except for the artificial distinction that they’re not part of “core Emacs.” They don’t depend on any extension mechanism other than the same Lisp interpreter used by the rest of Emacs.

This is, of course, what I refer to as a “first-world problem.” It’s simply a matter of terminology—like the window/frame distinction that often confuses n00bs—and doesn’t matter very much. Still, we insist on the window/frame distinction and I see no reason why this should be different. What do you think? Am I wrong to insist on the distinction? It doesn’t, after all, cause any confusion like misusing “window” when you mean “frame” but it does obscure one of the most important features and strengths of Emacs: true extensibility.

Footnotes:

1

I’m going to abuse terminology just a bit and refer to even code that’s contained in a single file and not packaged up for ELPA as a “package.”

This entry was posted in General and tagged . Bookmark the permalink.