20 years with Emacs

IIRC, it was about 20 years ago when I ran Emacs for the first time. I originally used it on a System V system as a civilized alternative to vi editor. But during the time I became an Emacs power user, learned Elisp and started to use Emacs as my primary working environment.

Emacs, as a truly extensible text editor, is an excellent environment for implementing text handling applications (and not only them). I use it as a planner and information storage system (including things like flash card training), mail and news reader, powerful command line processor (better than readline which is limited by terminal capabilities) and command line debugger interface, file manager, interface to Unix tools, git interface, Common Lisp IDE, remote file handler (no need to run a separate Emacs instance on the remote machine), Jabber client, music player, etc.

Emacs applications use to be very powerful. I don’t use the above mentioned applications because they run in Emacs but because they work better for me than anything else I’ve tried. There are several reasons why it is so. Emacs applications often implement just user interfaces to standard tools such as ls, grep, ssh, git or debuggers without duplicating their functionality. Most user activities are based on some sort of text processing regardless the graphical elements of their user interface and Emacs is strong in text processing. Emacs provides high level programming environment with powerful and simple to use customization features. Emacs makes a uniform platform encouraging code sharing among its applications. Emacs is used primarily by power users so it can focus on usability rather than on handling ignorance. And finally Emacs attracts creative and skilful programmers. All these features together make Emacs a unique development platform.

One notable missing feature in Emacs is a Web browser. Emacs didn’t catch up with Web progress and there is no generally useable Emacs Web browser. But hopefully Emacs will be able to build something based on interaction with an extensible Web browser environment using XEmbed or so in future (some experiments with Uzbl have already been done).

An important Emacs feature is its stability. When I first started to use Emacs, after using buggy MS-DOS IDEs, it seemed to me there are no bugs in Emacs. Of course, Emacs is not perfect and there have always been bugs in it, but it took a few years before I actually experienced an Emacs bug for the first time. Now, when I use Emacs for many activities, I meet bugs more often but their number and importance is still acceptable, in comparison to applications I had to abandon because they started to expose unacceptable functional or usability problems. But stability is not only about bugs, it’s also about persistent consistency, code quality and documentation; Emacs has always been strong in these areas.

I use to be quite critical to software, for good reasons. But my twenty years with Emacs were happy. Since I started to use Emacs I’ve always been mostly satisfied with it and I’ve never had to look for a better alternative. I consider Emacs being an excellent demonstration of how free software, free of direct commercial pressures and combined with a community of excellent software developers, can successfully survive and continuously evolve for decades. I assume Emacs will continue to grow in future and will remain my primary working tool, perhaps forever.