Emacs the Computing Environment
I love Emacs as a system, even if it is a bit slow and bloated. People joke that Emacs is a great OS that is missing a text editor, and well while Emacs does not handle persistence, concurrency, virtualization yadda yadda which an OS normally should, it is certainly not just a text editor. I think of it as a computing environment.
Compared to Kakoune or Neovim that opens in milliseconds, Emacs loads in seconds. Many features have noticeable delays that just feel like they should be smoother, and you wonder if there aren’t a few features that could be cut. But despite that, I think it adds so many interesting utilities and features that I just wish were available in regular Unix.
There is without a doubt a certain charm to Emacs and some features I would love to bake into Unix and terminal ecosystem:
- Ease of access to offline documentation. Info-pages get a bad rep, maybe in part because the keybindings are very Emacs specific, but it solves a real need. Because man-pages are meant to be terse and for reference, they can not contain everything necessary to provide good documentation.
- Everything can be linked and bookmarked. That means that if you have references scattered around different documents, you are able to very easily bring them together. For example, I have bookmarks to reference documentation, websites, emails, all accessible from a single place. In Org mode, I can have TODO items that link to specific parts of a code.
- Documents can be interactive. Together with
org-babel
orhyperbole
, you can create interactive media. For example, hyperbole can add a document full of commands you can run, so your documentation is interactive.org-babel
can enable you to to write documents with code-snippets in them so that you can evaluate them. - Variable pitch mode and image rendering. Variable pitch mode allows you to switch between a sans font and a mono-spaced font. This along with images makes for a much better reading experience when browsing the web.
- It can load images directly. There is a way to do so as well if your terminal emulator have sixel support, but this feature is not really used so often.
I would like to use a Unix terminal instead of a Lisp VM like Emacs, as I do prefer an ecosystem where you are not just bound to Lisp but can use whatever tool you want. In theory a lot of what Emacs can do is feasible in Unix, but in practice the ecosystem is far behind. If you are like me in that you basically live within your terminal, I find that you are better served by a system like Emacs.
- Marc