Who cares about Emacs? | Opensource.com

Who cares about Emacs?

GNU Emacs has been around for a long time—since 1983—but its continuous development makes it still relevant today.

open source button on keyboard
Image by : 
Opensource.com
x

Subscribe now

Get the highlights in your inbox every week.

GNU Emacs may not be the oldest interactive text editor for Unix—it's arguably predated or matched by the Vi editor—nor is it the only Emacs in existence. However, it's surely the most popular Emacs and one of the best editors available on POSIX. Or it was until fresh new editors, like Atom, VSCode, and Brackets, came to the fresh new open source landscape of today. There are so many options for robust text editors now, many of which have iterated upon Emacs' ideas and traditions, that you may well wonder whether GNU Emacs is still relevant.

Emacs since 1983

Open source is different today than it was when GNU Emacs shook the programming world back in 1983. Emacs was exciting then because it was truly the best in its class, and it was free to share across a costly and proprietary Unix install base. Today, Emacs is just one of many editors designed primarily with programmers in mind, and the best of them are also open source.

It's significant that Emacs has been around since 1983, though. While age by no means implies quality or growth, Emacs has been under constant collaborative development from the start. If you're looking for long-term stability, Emacs is a shining example. While it has undergone significant changes since it began, it's reasonable to anticipate that GNU Emacs from 10 or more years ago is functionally the same as the latest release. There are Emacs users with custom hacks in their .emacs configuration file dating back to the mid-'90s. Some of my config options are borrowed from mentors, so my config predates my use of Emacs, and they still work.

With Emacs, you're not limited to adjusting thematic elements or just drumming up a cool plugin. When you hack on your Emacs configuration, you're changing the way Emacs runs and how you interface with it. You create your own Emacs experience, and you get to keep that experience for as long as you want.

Run it remotely as text

Feature-for-feature, anything that Emacs has is probably also present in a modern editor. Software tends to behave that way: applications borrow and integrate features from their predecessors because those features are considered the baseline expectations. However, there's one thing about Emacs that's tough to beat: its ability to run as a text-only interface in a terminal without losing any features.

At its core, Emacs is a Lisp interpreter. You can think of it as Python IDLE but for a dialect of Lisp instead of Python. It can be run as a text interface in a terminal, as a GUI interface with GTK, Aqua, Lucid, or others, or as a client in another Emacs session. While you may not be able to use some specialized feature that relies upon a graphics server (for instance, opening a PDF as a graphic file isn't supported in a terminal alone), all core features and most extensions operate the same as they do with a GUI.

No telemetry

Not all text editors track you, but there are those that do. Some editors don't just log your initial download of the product but actively track your usage, whether you're aware of it or not. It's this reason that projects like VSCodium exist: to help you compile your editor with hardly any tracking software included. Unfortunately, the act of compiling an "unofficial" version of an editor (to the extent that a truly open source editor can be christened "official") negates your ability to run some extensions, so sometimes your choice is to either run the binary the sponsoring company provides or run an editor with reduced functionality.

The assurance of the free software license that GNU Emacs helped popularize is that this won't happen. The GNU Emacs you compile yourself can be the exact same product a binary from GNU or a distribution repository provides. Truth be told, compiling it yourself can sometimes be even better because you're able to adjust how you build it to suit your specific needs, but you never have to unwillingly give up functionality.

Hacking code, not APIs

Open source means you can hack code, no matter what. However, there's a big difference between hacking on an editor and making API calls. With many modern text editors, when they advertise themselves as "hackable" or even "extensible," they're really referring to an API provided by the core developers. That's by no means a problem, but it's different than modifying the code of the engine itself. With Emacs, when you write Lisp modifications for your editing environment, whether it's just a one-liner in your .emacs config file or a fancy plugin you offer to thousands of other users, you're reprogramming what you're running.

Sometimes, abstraction is a good thing. By implementing an API, developers can offer many points of entry into extending their product, such as providing a JavaScript, a Python, and a Ruby interface for the same editor. On the other hand, an API is an API, and it means that you can only use what's provided. If the API developer hasn't anticipated that you want access to some data object, then you don't get access to that data object unless you hack on the API itself (which, with open source, is entirely possible).

Emacs being a Lisp interpreter, however, ensures that you have access to everything. In a way, it's the realization of the promise of Unix itself: it endows normal users with ultimate control over their environment. In Emacs, you can develop whole applications that run in Emacs. If you want to develop an application but don't have time to design a GUI and build complex code needed to make it all make sense, you can use Emacs as both your scripting language and your platform. Many have already done just that, sometimes with success that rivals the popularity of Emacs itself.

Maximized productivity

When you use an editor that was invented before common conventions like Ctrl+C to copy and Ctrl+V to paste, you're in for a learning curve. Emacs keyboard notation can be confusing at first, with instructions like C-x C-f to open a file or M-d to forward-cut a word. There are ways to mitigate this. You can activate CUA mode, which uses shortcuts like Ctrl+C to copy., or you can spend time creating an alternate keyboard scheme so you can use shortcuts you're comfortable with (Ctrl+O to open, Ctrl+Q to quit, and so on). However, like most people who stick with it, you might find that once you learn Emacs and have committed its sometimes obscure commands to memory, it's difficult to use anything else. One Emacs user was so addicted to Emacs keybindings that he created a LibreOffice plugin so he could use LibreOffice like Emacs!

When you use Emacs well, there's hardly any separation between the act of typing words and typing the command sequences used to edit those words. Your brain doesn't have to switch back and forth between composing sentences and going back a few words to make a quick change, or saving the file, or copying and pasting, and so on. It's all the same to Emacs, and your fingers are never idle. There's no better way to maximize productivity.

To get comfortable with Emacs takes practice, but no more than learning the controller for a game console and a lot less than learning a musical instrument. But once you internalize it, Emacs unlocks the same amount of fun as a game console (try M-x tetris) and nearly as much inspiration as a musical instrument.

Modern tooling for a modern age

As always in open source, with Emacs, you can build upon the hard labor of others. With the right mix of Emacs packages, you can transform Emacs into an intelligent interactive development environment (IDE), an overly helpful typewriter, a role-playing game (RPG) control panel, an agenda, a calendaring application, a multimedia player, and a lot more.

Open source isn't, by nature, a very competitive beast. You can use Emacs if you want, when you want, and you can also use another editor. You're not bound by loyalty or contract to any single tool. GNU Emacs is an important open source editor for the modern age, championing software and user freedom and convenience in some important and significant ways. If you haven't tried Emacs yet, take it for a test drive to see what you can do with it.

Text editor on a browser, in blue

Here are six things you may not have realized you could do with Emacs. Then, get our new cheat sheet to get the most out of Emacs.
Pull to open here

GNU Emacs can be much more than just a text editor. Learn how to get started.

About the author

Seth Kenlon
Seth Kenlon - Seth Kenlon is a UNIX geek, free culture advocate, independent multimedia artist, and D&D nerd. He has worked in the film and computing industry, often at the same time. He is one of the maintainers of the Slackware-based multimedia production project Slackermedia.