Vivek Haldar

Emacs in the age of AI

I’ve expressed my fondness for Emacs in several post on this blog (A spiritual successor to Emacs, The levels of Emacs proficiency, and Why I still use Emacs), but I will play turncoat and write about the things that pull me out of Emacs. And they all have to do with AI.

In theory, Emacs should be the ideal UI for the age of LLMs, because after all, it’s all just text, and Emacs excels at manipulating text. But!

The first thing that pulls me out of Emacs is programming with Github Copilot, and its deeply integrated experience with VS Code. Some of that interaction is probably in closed protocols between VS Code and Copilot backends, but it is also the bespoke UI for inline chat and multi-file edits.

The next thing that pulls me out of Emacs is prototyping and writing and iterating with Artifacts and Canvas, and the general UI affordances in the bespoke clients for the major LLM providers. This holds for both code and prose.

Note that the above arguments have the same shape as those from a decade or so ago that claimed (rightfully) that crafted IDEs offer a richer, smoother experience for programming (particularly in IDE-dependent languages like Java) than trying to spend hours recreating the same functionality in Emacs only to end up with a clunky experience. That might still be true to an extent but the magnitude of the problem is a lot less severe due to a system-level innovation: language servers that speak a common, broadly supported protocol (LSP), and every language toolset shipping with one that was editor/IDE-agnostic.