emacs-devel
[Top][All Lists]
Advanced

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

RE: Emacs and Guile


From: Drew Adams
Subject: RE: Emacs and Guile
Date: Wed, 11 Apr 2012 10:28:46 -0700

I do not want to get into this discussion in detail (and don't bother flaming).
Just count me as one voice who is not in favor of "basing" Emacs on Guile or any
other Scheme dialect or implementation.

I might not object to "basing" Emacs on Common Lisp.  I think that Common Lisp,
like Emacs Lisp, is a much better fit for the kind of programming, including
customization and UI, that Emacs users and developers do.

I am content with Emacs being Emacs Lisp.  (Yes, I said "being", and not just
"being based on", because I view Emacs Lisp as part and parcel of Emacs, not
just as its implementation language.)  But I would not mind Emacs Lisp moving
more toward some of what Common Lisp offers.  (I also generally appreciate it
when we move some stuff from C to Lisp.)

I am strongly in favor of both lexical and dynamic binding/scope, for the usual
reasons given for each.

I have been in favor of lexical binding for Lisp since the original Lambda
papers back in the 70s & 80s (http://library.readscheme.org/page1.html).  But
that does not mean that I am in favor of a Scheme-based Emacs.

[I am a functional (and logic, and constraint) programming fan too, but I am not
in favor of a Haskell-based Emacs.  (I am not opposed to experimentation.  I
just do not want to see Emacs lose its Lisp development/base.)]

In the case of Emacs and its Lisp use cases, RMS's description of the advantages
of dynamic binding is right on
(http://www.gnu.org/software/emacs/emacs-paper.html#SEC17,
http://www.gnu.org/software/emacs/emacs-paper.html#SEC18), and too often missed
or under-appreciated, I think.

Steve Yegge, for example, gives as his only example of dynamic-scope advantage
setting a free variable in a called function to affect the caller's stack frame
(http://steve-yegge.blogspot.com/2008/01/emergency-elisp.html).  The advantage
to be emphasized is instead the one RMS points out: binding/setting in a caller
to affect callee behavior.

It would be misguided, IMHO, to move to a Lisp that did not enjoy both lexical
and dynamic binding/scope as first-class features.

That's all I want to say on the matter.  No, I did not provide much in the way
of reasons - I'm not really interested in the discussion.  Just count me as one
vote against a Guilemacs.  I want a "real" Lisp for Emacs ;-).  (Sorry, couldn't
resist.)




reply via email to

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