Friday, June 3, 2011

Linux programming editor of choice: Emacs

In yesterdays post, I wrote about Crimson Editor, a Windows based programmers editor that I've come to truly love over the years. Today, we're going to tackle Linux editors and, I have to say, picking a favorite editor for Linux was a really tough choice. There are so many choices, most of them really good and almost all of them free and open source.

Over the last few years, I've used a variety of editors on Linux, from Vi to Eclipse, I've gone through them all. For a while, I was even trying to use gEdit and Nano! Admittedly, since I've moved to Linux full time, my choice of editor has stabilized since I had to find something in which I could actually work comfortably and that, like on Windows, got out of my way and only helped when I needed it to.

Enter Emacs

Emacs is an old editor. Originally written by Free Software Foundation founder Richard M. Stallman in 1976 and updated constantly since, Emacs has found a home in almost every Unix (and now Linux) programmers toolbox. It's extensible, configurable, easy to use and offers everything a professional programmer would want in an editor:

  • Content-sensitive editing modes, including syntax coloring, for a variety of file types including plain text, source code, and HTML
  • Complete built-in documentation, including a tutorial for new users.
  • Full Unicode support for nearly all human languages and their scripts.
  • Highly customizable, using Emacs Lisp code or a graphical interface.
  • A large number of extensions that add other functionality, including a project planner, mail and news reader, debugger interface, calendar, and more. Many of these extensions are distributed with GNU Emacs; others are available separately.
  • Many other features that serious programmers will find indispensable

Of all the editors I've used on various kinds of systems, Emacs is perhaps the best yet. It's simple, configurable, and well supported. Currently in version 23 and

with a lifespan of over 30 years, Emacs could very well be the longest lived in use editor on the planet. There's a passionate community of users behind it and it really has taken a life of its own. I think that's a testament to how incredible the software really is.

Of course, there's all this goodness comes at a cost. Yesterday, I did a 'good/bad' comparison of Crimson Editor. Today, because my list of 'bad' is so short, I'm simply going to dispense with the list and post it outright:

The only thing wrong with Emacs is that it has a learning curve..

Seriously. That's it. I can't think of anything else negative about it. And the learning curve really isn't that steep either. A competent computer person can learn Emacs in less than a week and can become productive almost immediately.

Something else that should be noted is that the software is also cross platform. You can run it on almost any system including Windows, Mac, Linux, and (of course) Unix. On each system, it runs basically the same, has the same commands, and only has minor UI differences.

Lastly, the software is light. If you read my article yesterday, you know I hate bloated editors. One of the reasons I really like Crimson Editor is because how easy it is on system resources and Emacs is even better. It sits there, with all that raw power, waiting for your command while your system barely even knows it's there.

So that's it! If you're looking for a great programming editor for Linux, you can't beat Emacs. Check it out and see for yourself if you're not almost immediately more productive. In the end, isn't that a programmers greatest desire? Just to be more productive?

No comments: