From: Drew Adams <drew.adams@oracle.com>
To: Philipp Stephani <p.stephani2@gmail.com>,
Paul Eggert <eggert@cs.ucla.edu>, Alan Mackenzie <acm@muc.de>,
emacs-devel@gnu.org, Eli Zaretskii <eliz@gnu.org>,
rms@gnu.org
Subject: RE: Emacs 26.1 release branch created
Date: Tue, 26 Sep 2017 13:33:53 -0700 (PDT) [thread overview]
Message-ID: <15e83da5-6296-4ae3-949f-bb5b892db9bc@default> (raw)
In-Reply-To: <CAArVCkQ_OkzOXq8CfjeyaRdbG-+cXstKWzq4EJx+=PB+1bDx+A@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 1445 bytes --]
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.
HYPERLINK "http://library.readscheme.org/page1.html"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 HYPERLINK "https://www.gnu.org/software/emacs/emacs-paper.html#SEC15"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.)
[-- Attachment #2: Type: text/html, Size: 5135 bytes --]
next prev parent reply other threads:[~2017-09-26 20:33 UTC|newest]
Thread overview: 127+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-16 12:56 Emacs 26.1 release branch created Eli Zaretskii
2017-09-16 13:01 ` Eli Zaretskii
2017-09-16 13:09 ` Mark Oteiza
2017-09-16 13:39 ` Eli Zaretskii
2017-09-16 14:51 ` Mark Oteiza
2017-09-16 14:58 ` Eli Zaretskii
2017-09-22 16:59 ` Mark Oteiza
2017-09-22 19:59 ` Eli Zaretskii
2017-09-22 20:05 ` Mark Oteiza
2017-09-22 20:11 ` Eli Zaretskii
2017-09-22 20:13 ` Mark Oteiza
2017-09-29 20:25 ` [PATCH] lcms2 (was Re: Emacs 26.1 release branch created) Mark Oteiza
2017-09-30 9:22 ` Eli Zaretskii
2017-09-16 14:18 ` Emacs 26.1 release branch created Alan Mackenzie
2017-09-16 17:05 ` Rasmus
2017-09-16 17:34 ` Eli Zaretskii
2017-09-18 9:36 ` Rasmus
2017-09-18 9:47 ` Rasmus
2017-09-20 11:45 ` Kaushal Modi
2017-09-20 11:59 ` Nicolas Petton
2017-09-20 12:01 ` Kaushal Modi
2017-09-20 12:17 ` Rasmus
2017-09-20 12:24 ` Kaushal Modi
2017-09-20 13:03 ` Rasmus
2017-09-16 18:06 ` Nicolas Petton
2017-09-16 19:54 ` Lars Ingebrigtsen
2017-09-17 2:31 ` Eli Zaretskii
2017-09-18 16:22 ` Alan Third
2017-09-18 17:36 ` Eli Zaretskii
2017-09-19 17:35 ` Alan Mackenzie
2017-09-19 17:54 ` Eli Zaretskii
2017-09-19 18:09 ` Alan Mackenzie
2017-09-19 18:34 ` Eli Zaretskii
2017-09-19 18:36 ` Eli Zaretskii
2017-09-19 19:11 ` Paul Eggert
2017-09-19 19:43 ` Alan Mackenzie
2017-09-19 20:54 ` About curly quotes (again) [Was: Emacs 26.1 release branch created] Kaushal Modi
2017-09-19 21:09 ` Alan Mackenzie
2017-09-19 23:33 ` John Wiegley
2017-09-20 0:00 ` Paul Eggert
2017-09-20 4:16 ` Marcin Borkowski
2017-09-20 6:17 ` Noam Postavsky
2017-09-23 11:18 ` Marcin Borkowski
2017-09-23 12:14 ` Eli Zaretskii
2017-09-23 19:40 ` Marcin Borkowski
2017-09-24 2:46 ` Eli Zaretskii
2017-09-25 13:40 ` Marcin Borkowski
2017-09-25 18:57 ` Eli Zaretskii
2017-09-26 12:39 ` Marcin Borkowski
2017-09-29 12:22 ` Eli Zaretskii
2017-09-30 7:58 ` Marcin Borkowski
2017-09-30 8:31 ` Eli Zaretskii
2017-09-30 20:03 ` Marcin Borkowski
2017-09-20 17:44 ` Drew Adams
2017-09-20 6:41 ` Eli Zaretskii
2017-09-20 14:45 ` John Wiegley
2017-09-20 14:48 ` Eli Zaretskii
2017-09-21 17:30 ` Filipp Gunbin
2017-09-19 23:14 ` Emacs 26.1 release branch created Paul Eggert
2017-09-20 6:41 ` Eli Zaretskii
2017-09-20 13:01 ` Richard Stallman
2017-09-20 13:10 ` Eli Zaretskii
2017-09-20 20:37 ` Richard Stallman
2017-09-21 20:36 ` Paul Eggert
[not found] ` <<E1duedQ-0002Bs-O3@fencepost.gnu.org>
2017-09-20 17:50 ` Drew Adams
2017-09-20 6:32 ` Eli Zaretskii
2017-09-19 17:58 ` Paul Eggert
2017-09-20 18:30 ` John Wiegley
2017-09-21 20:54 ` Alan Mackenzie
2017-09-22 5:19 ` Paul Eggert
2017-09-22 5:58 ` John Wiegley
2017-09-22 18:04 ` Alan Mackenzie
2017-09-22 18:47 ` John Wiegley
2017-09-22 20:42 ` Paul Eggert
2017-09-24 14:33 ` Alan Mackenzie
2017-09-24 18:13 ` Paul Eggert
2017-09-24 20:18 ` Alan Mackenzie
2017-09-22 7:17 ` Eli Zaretskii
2017-09-22 18:41 ` Alan Mackenzie
2017-09-22 19:09 ` Stefan Monnier
2017-09-22 19:28 ` John Wiegley
2017-09-22 19:35 ` Alan Mackenzie
2017-09-22 19:46 ` John Wiegley
2017-09-22 22:07 ` Alan Mackenzie
2017-09-24 14:39 ` Alan Mackenzie
2017-09-24 18:26 ` Paul Eggert
2017-09-24 19:41 ` Alan Mackenzie
2017-09-24 23:16 ` John Wiegley
2017-09-25 0:08 ` Paul Eggert
2017-09-25 4:23 ` John Wiegley
2017-09-25 19:03 ` Alan Mackenzie
2017-09-25 19:43 ` Drew Adams
2017-09-25 20:24 ` John Wiegley
2017-09-25 22:25 ` Paul Eggert
2017-09-26 2:52 ` Drew Adams
2017-09-26 3:23 ` Paul Eggert
2017-09-26 19:28 ` Philipp Stephani
2017-09-26 20:26 ` Alan Mackenzie
2017-09-27 9:15 ` Alexis
2017-09-27 22:13 ` Richard Stallman
2017-09-28 1:48 ` Alexis
2017-09-27 23:41 ` Óscar Fuentes
2017-09-28 1:25 ` Alexis
2017-09-27 11:54 ` Philippe Vaucher
2017-09-27 18:43 ` Alan Mackenzie
2017-09-28 7:42 ` Philippe Vaucher
2017-09-26 20:33 ` Drew Adams [this message]
2017-09-29 10:42 ` Eli Zaretskii
2017-09-29 9:34 ` Eli Zaretskii
[not found] ` <<83shf597b0.fsf@gnu.org>
2017-09-30 4:06 ` Drew Adams
2017-09-30 4:41 ` Paul Eggert
2017-09-30 13:58 ` Drew Adams
2017-09-25 23:36 ` Paul Eggert
2017-09-30 12:10 ` Alan Mackenzie
2017-10-01 0:16 ` Paul Eggert
2017-10-01 11:37 ` Alan Mackenzie
2017-09-25 5:51 ` Paul Eggert
2017-09-22 19:35 ` Eli Zaretskii
2017-09-27 18:09 ` João Távora
2017-09-27 19:32 ` John Wiegley
2017-09-28 7:28 ` João Távora
2017-09-28 7:28 ` João Távora
2017-09-28 16:58 ` John Wiegley
2017-09-29 15:44 ` Eli Zaretskii
2017-09-29 17:04 ` João Távora
2017-09-29 18:11 ` Eli Zaretskii
2017-09-29 18:13 ` John Wiegley
[not found] <<83377mls4d.fsf@gnu.org>
[not found] <<m28th6ilcn.fsf@newartisans.com>
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=15e83da5-6296-4ae3-949f-bb5b892db9bc@default \
--to=drew.adams@oracle.com \
--cc=acm@muc.de \
--cc=eggert@cs.ucla.edu \
--cc=eliz@gnu.org \
--cc=emacs-devel@gnu.org \
--cc=p.stephani2@gmail.com \
--cc=rms@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).