Emacs: The Portable Development Environment

Yesterday, I wrote about the video chat between Sacha Chua and Avdi Grimm. The take away from that post was vc-annotate, a powerful Emacs tool that hooks into your version control’s annotation facility. Right at the end of the chat—about 42:25—Grimm makes another important point that we’ve discussed here at Irreal many times.

He says that the real power of Emacs is that it’s not just an editor but a Lisp Machine. What makes that important is that we can write our own development environment and take it with us wherever we go: it’s portable. Portable across projects, machines, and operating systems. That’s because it all lives in the Emacs Lisp Machine. Most of us, of course, don’t sit down and write a complete development environment before we start actually developing. Rather, we add small tools, shortcuts, and hacks to the stock Emacs distribution as we encounters pain points.

After a few years of that, we end up with a highly customized environment specifically suited to our work flow. This becomes so important that it would be painful to have to abandon it upon moving to another project or platform. The nice thing with Emacs is that we don’t have to. It’s all part of Emacs and our individual .emacs or init.el files.

The logical consequence of this is that many of us reach a state where we hate to leave Emacs and move as much of our environment as possible into it. You know you’ve reached that point when you find that you’re trying to convince yourself that, really, W3M is almost as good as Safari/Chrome/FireFox or whatever. We mostly don’t believe that but it makes us grumpy that we can’t run a browser inside Emacs the way we do a shell.

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