Unix Programming - Language Evaluations - Emacs Lisp
Emacs Lisp is a scripting language used to program the behavior of the
Emacs text editor. Its first public release was in 1984.
Emacs Lisp is not a general-purpose language in quite the same
way as the others surveyed in this chapter; while it is powerful
enough to theoretically be used as such, it is traditionally employed
only to write control programs for the
Emacs editor itself and does not
communicate as fluently with other software as would a modern
scripting language.
Nevertheless, there is a significant range of applications in
which Emacs Lisp is more effective than anything else. Many of these
have to do with providing a front-end for development tools such as
the C compiler and linker,
make(1),
version-control systems, and symbolic debuggers; we'll discuss these
in Chapter15.
More generally, Emacs is to pattern-
or syntax-directed
interactive
editing what
Perl is to
pattern-directed
batch
editing. Any application
that involves interactively hacking a special file format or text
database is an excellent candidate to be prototyped (and possibly
delivered) as an Emacs mode (an Emacs Lisp
program that specializes the editor's behavior).
Emacs Lisp is also valuable for building applications that have
to be closely integrated with a text editor, or that function
primarily as text browsers with some editing capability. User agents
for email and Usenet
news fall in this category. So do certain kinds of database front
ends.
Emacs Lisp is a Lisp. It follows as the night the day that it
manages memory automatically and is far more elegant and powerful than
most conventional languages, or indeed most
unconventional
languages; it can compete with
Java or
Python on
this level and laugh at C or C++, Perl, shell or Tcl. Lisp's perennial problem of lacking a
standardized OS binding for portability is solved by the Emacs core,
which in effect
is
its OS binding.
Lisp's other perennial problem — being a resource hog
— is no longer a real issue on modern machines. Parody
expansions like ‘Emacs Makes A Computer Slow’ and
‘Eventually Munches All Computer Storage’ used to be
common (in fact the Emacs distribution itself includes a list of
them). But many other commonly used categories of programs (such as
Web browsers) have nowadays grown larger and more complex than Emacs,
which has come to appear rather moderate by comparison.
The definitive Emacs Lisp reference is
The GNU Emacs
Lisp Reference Manual
, which may be browseable through your
Emacs's ‘info’ help system. If not, it can be downloaded from the
FSF FTP site. If you
find that impenetrable, Writing GNU Emacs
Extensions [Glickstein] may help.
Portability of Emacs Lisp programs is excellent.
Emacs implementations are available for all
Unixes, the Microsoft operating systems, and Mac
OS.
Summing up: Emacs Lisp's best point is that it combines an
excellent base language, Lisp, with powerful domain primitives for
text manipulation. Its worst point is poor performance and
difficulties using it in communication with other programs.
For more information, see the discussion of
Emacs under editors in the next
chapter.
[an error occurred while processing this directive]
|