Al Williams over at Hackaday has a post in which he discusses the Emacs/Vi holy war and looks at the merits of each editor. It’s interesting in the way that these posts always are but I think he misses the big—or at least, most important—difference between the editors.
He mentions that Vi is modal while Emacs is not and both methods have their adherents. For some, that difference may be enough to choose one over the other but the important difference, I think, involves command composability and programmability. Emacs is programmable and Vi has a composable command set. Mike Kozlowski brilliantly explored this in a post that I wrote about previously. Vi is often considered hard to learn but the command composability actually makes it easy. When people say it’s hard to learn, they’re usually referring to the fact that they find its modality unnatural.
Williams observes that Emacs lovers are often touch typists who started programming before GUIs were popular. The touch typist part, he suggests, is because Emacs is keyboard based and its users hate to take their hands off home row. But that applies equally to Vi. Like Emacers, experienced Vi users hardly ever bother with the mouse or things like the arrow keys. They keep their hands on the home row.
I would guess that if you come from the ancient pre-GUI days, you’re equally likely to use vi or Emacs. Both are, at bottom, text based even though they both have GUI versions and at least in Emacs’ case the GUI version is a bit more capable. Williams says that the reason pre-GUI people like Emacs is because it provides a windowing system of sorts even in a strictly text-based environment. It’s certainly more capable than the traditional vi windowing and maybe even Vim’s windowing1. And, of course, you can put things other than text in an Emacs window.
As I suggested in my post on the Emacs/Vi holy wars the other day, I think that Williams’ arguments really work better as an explanation for why some people prefer Vi or Emacs over those other editors. In any event, it’s an interesting post and worth reading if you’re interested editor taxonomy.
Footnotes:
When I last used Vim, the windowing was pretty good but still not as capable as Emacs’. That may have changed without my noticing since I only occasionally use Vim these days.