[Top][All Lists]

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

RE: Emacs 26.1 release branch created

From: Drew Adams
Subject: RE: Emacs 26.1 release branch created
Date: Tue, 26 Sep 2017 13:33:53 -0700 (PDT)

Uh, let-binding dynamic variables is as old as the hills.
It's older than Emacs (and that's saying something).


It's still no good. Dynamic variables are global mutable state, with all its downsides.


Of course they are. With all their upsides and downsides. Nothing new here.


Early Lisps had only dynamic binding because people didn't know better. But now we know that global mutable state is almost always undesirable and avoid id wherever we can.


There's nothing new about knowing that global mutable state can be problematic, both for users and language optimizers. Old as the sea.


Lexical binding for Lisp was available before Emacs Lisp. It was actively discussed in Lisp circles at the time, in particular in the context of designing Common Lisp. I'm sure RMS was quite well aware of it - its advantages as well as its limitations.


He used dynamic binding for Emacs not because he "didn't know better". In the article I cited he tells you clearly why dynamic binding is important ("vital" was the word he used) for an application like Emacs. Those reasons are just as valid today as when they were written.


But you're free to propose that Emacs Lisp should not have user options and other global variables.


("Now we know", indeed. Such hubris.)

reply via email to

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