emacs-devel
[Top][All Lists]
Advanced

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

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


From: Per Abrahamsen
Subject: Re: Lexical binding -- do we really need it?
Date: Tue, 11 Dec 2001 09:57:14 +0100
User-agent: Gnus/5.090004 (Oort Gnus v0.04) Emacs/21.1 (i686-pc-linux-gnu)

Sam Steingold <address@hidden> writes:

> 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.

Actually, I think the largest problem with allowing an implementaion
of lexical scope is exactly what you describe above.  We risk changing
the focus of Emacs from creating the createst editor of all time, into
the kind of language design issues loved by the Lisp community.

When I have lurked in the Guile lists, it have mostly felt like a
language design forum, while the much more important Guile specific
issues such as providing a stable and consistent C API for host
applications, providing a library with the kind of functionality
offered by competing tools such as Perl, Python and TCL, and writing
front-end translators have largely been ignored.

I have a CS background, so I know the theoretical problems with errors
caused by dynamic scoping.  I just haven't experienced them in
practice.  If we were starting from scratch, the theoretical problems
alone would be reason enough to choose lexical scoping, but it isn't
nearly sufficient reason to switch now.

I believe lexical binding is a good Emacs feature for one, and only
one, reason.  It delivers the promise of much better optimizations,
and the low speed of Emacs Lisp code is a real bottleneck for real
applications.

PS: If we should make language changes to reduce bugs, the one feature
that would help most would be optional static type checks.  I feel
safe mentioning this, knowing that this will never happen in a Lisp
based community.



reply via email to

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