Subject: bug#66706: [PATCH] Automatic elisp dialect insertion

From: Po Lu <[email-masked]>
Date: Wed, 25 Oct 2023 11:01:00 +0800

Stefan Monnier <[email-masked]> writes:

> The lexbind dialect is the dialect we recommend:
>
>     Lately Emacs is moving towards using lexical binding in more and
>     more places, with the goal of eventually making lexical binding the
>     default.  In particular, all Emacs Lisp source files and the
>     @file{*scratch*} buffer use lexical scoping.
>
> So why should a new file default to using the dynbind dialect instead?

Because that is the default, rather than a mere recommendation.  A
suggestion is an idea its recipients are meant to judge for themselves,
on the grounds of its merits and deficiencies.

> We simply can't satisfy everyone: either we impose the dynbind
> dialect by default (the current situation) or we impose the lexbind
> dialect by default.  In both cases you can look at it as something
> imposed out of a sense of superiority, but I don't think that is
> a useful way to look at it.

There is no quandary between default values here.  This change is borne
out of both a desire to _retain the status quo_, and a belief that our
users are of such low intellectual caliber as to require instruction for
even the most elementary of tasks, so that the one pious way of writing
Emacs Lisp code is inculcated into them from the outset.

> Those users who read all the docs can easily turn that option off if
> they so wish.  We shouldn't decide on what's a good defaults based
> on them.

As mentioned above, we are not adjuding which form of variable binding
is to be enabled by default.

> Just to be clear: the long term goal is to eliminate the dynbind
> dialect, or at least make it be an opt-in that requires taking extra
> steps, such as adding a cookie to the file, whereas the lexbind dialect
> should be the default.  Not because dynbind is evil.  Not because it
> imposes an undue burden on the implementation.
> But because having two dialects imposes an undue burden on our users.
> Those who read all the docs may not care, but all the others are
> vulnerable to the usual "I copied the code from that webpage and it
> doesn't work" because the code on that webpage used the other dialect.

I find this categorical dismissal of the intellectual or problem-solving
capacity, and perhaps fortitude if you will, of Emacs users very
patronizing, needless to say with my Emacs user hat on.  Furthermore, it
is quite dubitable that minor customizations of the sort found on most
web pages are suceptible to influence by the type of variable binding
used.