[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Lexical binding -- do we really need it?

From: Sam Steingold
Subject: Re: Lexical binding -- do we really need it?
Date: 09 Dec 2001 13:56:04 -0500
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.1.50

> * In message <address@hidden>
> * On the subject of "Re: Lexical binding -- do we really need it?"
> * Sent on Sat, 8 Dec 2001 20:02:41 -0700 (MST)
> * Honorable Richard Stallman <address@hidden> writes:
> Whether we really want the feature of lexical binding in Emacs is
> another, deeper question.

the issue here is what we want Emacs to be:

 - a great editor with many bells and whistles or
 - a great editor with many bells and whistles AND
   a great development platform at the same time

Right now Emacs-Lisp is being stretched beyond its inherent
limitations.  The requirement of not using (require 'cl) at run time is
already hindering development of Gnus and preventing JDE from being
integrated into the Emacs distribution.

The brilliant idea of RMS to use a real language as the extension
language, when taken to the logical conclusion, requires this "real
language" to be thought of _not_ as an "extension language", but as a
"full-scale modern powerful development language".
We must evolve Emacs-Lisp away from the ancient paradigms, such as
all-dynamic bindings, and towards the modern concepts, such as CLOS,
packages, threads and, yes, lexical bindings.

Yes, some of these changes are likely to break some user code.  So?
Mule, introduced in e20, made it impossible for me to read and write
Cyrillic - until it got fixed a year later (or something).
Any change will break some things.

And this particular change (bindings) is especially easy to handle: on
the one hand, the user should treat all "reference to free variable"
warnings as errors and defvar all his specials, and on the other hand,
all free variables should be treated as special - as most CL
implementations do.  Then the incompatibilities will be minimal.

> I don't think it is worth while working on optimization in the Emacs
> Lisp compiler.  It could be an unlimited time sink, drawing effort
> away from features that benefit the user into something users will
> hardly notice.

The bindings issue is _not_ a performance issue.
It is an issue of code clarity and modularity, inter alia.
Performance is secondary.

I think that we should also consider the interests of the package
developers in addition to (even over!) the interests of the end-users,
since the end-user experience to a large degree comes through the
packages, such as Gnus and JDE.

Making Emacs _development_ more pleasant by adding the modern frills
will trickle down to the end users too - a raising tide lifts all boats!
(no, I did not vote for Reagan - I was too young _and_ I lived in the
Soviet Union! :-).

Wouldn't it be great to be able to replace calc with maxima?

Sam Steingold (http://www.podval.org/~sds)
Keep Jerusalem united! <http://www.onejerusalem.org/Petition.asp>
Read, think and remember! <http://www.iris.org.il> <http://www.memri.org/>
He who laughs last did not get the joke.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]