Yet another illustrated primer

This one, called Living in Emacs (PDF), covers the very basics of using Emacs as your working environment:

Getting started with Emacs requires navigating a steep learning curve. Our goal is to help you past the initially unfamiliar interface so that the power and utility of Emacs become apparent. Then you’ll be ready to explore further on your own, following up on the resources and tips at the end of the tutorial.

The 25-pages long tutorial closes with a good piece of advice:

Use Emacs. Live in it for a while, learn to love it a little bit. Like any complex program, it will take time for you to fully grok it, but the effort’s worthwhile: you’ll have become fluent in one of the most common UNIX programming utilities and picked up a fundamentally marketable skill to boot!

Worth a look if you’re just getting started.

An illustrated Emacs tutorial

MIT’s SIPB IAP activities page is a treasure trove of interesting stuff. Among the many classes programmed for 2007, there’s one that i’m sure will be interesting to many mew readers: Being Productive With Emacs. The good news is that you don’t need to travel to Boston to get this excellent illustrated introduction to Emacs, continued with a customization and an extension guide. Being the slides of three presentations (by Phil Sung), they’re sketchy at places, but make for a great introduction to Emacsland nonetheless, and there’s a trick or two for seasoned users as well. Recommended.

Emacs v. vi is rooted in the love of Lisp

In the comments section of an early post, Steven G. Harms has mentioned his little essay Emacs v. vi is rooted in the love of Lisp. I think it’s a pretty interesting take on what makes Emacs a powerful environment, and that it will probably be a pretty interesting reading for readers of mew. (And no, i have no interest at all in yet another boring Emacs vs. Vi religious war–i use vim almost daily, without feeling guilty or anything.)

The Ghost in the Lisp Machine

A friend of mine uses to say that Emacs fills our yearning for a Lisp Machine. I tend to agree with him: Emacs is not just an editor, but a full integrated environment where you can perform virtually any imaginable task; and, most importantly, the inner workings of the system are open to you to explore and extend. Using, for extra fun, Lisp. No, i don’t think that Elisp is the nicest Lisp incarnation around, but is far better than, say, C, and i still prefer it to other scripting languages. Moreover, the awesome range of libraries at your disposal makes up for many of the deficiencies in the language.

Living in Emacs is addictive. Imagine an operating system where you can switch from writing code to browsing the web or chatting without leaving a consistent environment, with the same set of commands and shortcuts. Imagine a set of integrated applications where data is seamlessly shared, where any single functionality can be tweaked, extended and adapted to your particular needs. Where everything is easily scriptable. Imagine, in additon, that the environment provides powerful and complete interactive self-documentation facilities with which the user can find out what is available. I have yet to find an operating system providing such an integrated environment. Not even Mac OS X, where AppleScript support is often lacking and system services are underused.

Of course, the key ingredient here is Emacs’ extensibility. Far from being an afterthought or simply one of its features, extensibility is the central aspect of Emacs’ architecture. Actually, the whole point of this post is to recommend you reading Richard Stallman’s 1981 essay EMACS: The Extensible, Customizable Display Editor, which explains much better than I could the strong points of Emacs design, i.e., those traits that make Emacs more, much more, than just an editor. From the horse’s mouth:

Extensibility means that the user can add new editing commands or change old ones to fit his editing needs, while he is editing. EMACS is written in a modular fashion, composed of many separate and independent functions. The user extends EMACS by adding or replacing functions, writing their definitions in the same language that was used to write the original EMACS system. We will explain below why this is the only method of extension which is practical in use: others are theoretically equally good but discourage use, or discourage nontrivial use.
[…]
User customization helps in another, subtler way, by making the whole user community into a breeding and testing ground for new ideas. Users think of small changes, try them, and give them to other users–if an idea becomes popular, it can be incorporated into the core system. When we poll users on suggested changes, they can respond on the basis of actual experience rather than thought experiments.

The article goes on explaining the organization of the Emacs system, how it depends on its interpreter, Elisp’s main features and how built-in self-documentation is provided. Also interesting is the list of related systems at the end of the essay: Lisp machines, LOGO, MacLisp and Smalltalk. We’re definitely in good company!