kaashif's blog

Programming, software freedom and Unix


Emacs is great

I’ve seen many completely stupid articles where people furiously circlejerk over how Vim is the best and nothing will ever come close, but it’s rare that I see anyone write much about Emacs, probably because fewer people use it (or maybe Emacs attracts a different demographic). It’s rare I see an article like

this one, where the author’s stupidity is front and center.

I admit that Atom can’t replace Vim, as the title says, but here is the kicker:

If this sounds a bit commonplace, it’s because Emacs’ big idea has been widely influential and extensibility is today a standard feature in any serious editor. Sublime Text uses Python instead of Lisp, and Atom uses Coffeescript, but the fundamentals of commands and keymaps are built in to the core. Even Vim has absorbed Emacs’ extensibility: Vim script can define new functions, which can be mapped to command keystrokes.

While Emacs’ big idea has caught on, hardly any program, let alone any editor lets you customise it in the way Emacs does. For example, it is entirely possible (although stupid) to use Emacs as your web browser, email client, it’s even possible to use Vim in Emacs, with evil-mode. Hell, I’d argue that with Emacs’ nigh-infinite extensibility, evil-mode is even better than the “real deal” - you get all of the fantastic Emacs modes you can’t get in Vim, due to its limited extensibility.

Here’s another gem:

This philosophy of minimalist commands that can be composed together is the fundamental originating philosophy of Unix, and Vim exemplifies it like no other editor.

Unix philosophy = good. OK. I get it. I hear the same thing from anti-systemd zealots who spout this tripe without knowing what it means. The Unix philosophy tells you to write programs that do one thing and do it well. Programs. One thing. What we have learnt from the blog post is that you shouldn’t find the best editor, you should find the most minimalistic editor with composable commands. Somehow, I think the author uses Vim with many plugins instead of piping text through program after program, each of which only does one thing.

The lesson here is that you should look for the best tool, not the one that most fits into your twisted, misinterpreted view of a philosophy almost entirely unrelated to what your tool should do.