Subject: bug#50895: 28.0.50; show-paren-mode is distracting in some modes

From: Eli Zaretskii <[email-masked]>
Date: Thu, 30 Sep 2021 12:02:29 +0300

> From: Dmitry Gutov <[email-masked]>
> Date: Wed, 29 Sep 2021 23:02:03 +0300
> Cc: [email-masked]
> 
> >> Then the default value for `show-paren-global-modes' could be
> >> `(prog-mode)' or `(prog-mode text-mode)', or even `(not
> >> special-mode)', depending on one's opinions about whether
> >> `show-paren-mode' makes sense for prose. That would cover both this
> >> bug as well as providing an easy way for users to customize the major
> >> modes where `show-paren-mode' is enabled (this is already possible
> >> with `show-paren-local-mode', but it'd be a bit simpler with
> >> `show-paren-global-modes').
> > 
> > Yes, that makes sense to me.
> 
> The new var, if we add it now, should probably be just t by default.
> 
> To avoid changing the behavior for those who customized show-paren-mode 
> for many years, and yet allow an easy customization point for others who 
> can by annoyed with the change.
> 
> I don't know how to avoid changing the behavior for existing users of 
> this mode, unless we make the variable itself take different values (can 
> we?), and have it used instead of adding show-paren-global-modes.

IMNSHO, it would be wrong for us to do that now.  show-paren-mode in
its traditional global implementation was tested for many years by
many users, and we have a good understanding of what it does.  Turning
it on by default makes that well-understood feature available to
everyone.  The problems with that should be minor, mostly related to
personal preferences, as always with defaults.

By contrast, the suggestion here is to turn on by default something we
never tried before.  While the chances of it to introduce some serious
regressions are probably not high, they are definitely higher than
simply turning on the mode globally, something we already did.  It
makes little sense to me to argue for a long time about a feature,
have a user poll about its turning on, then turn on some different
feature by default.  That's not a healthy way of changing defaults in
Emacs, and it runs a higher risk of causing unintended problems.
There's absolutely no justification for that.  "Perfect is the enemy
of good."

There's nothing particularly wrong with the current global settings,
except that some people don't like the results.  That some don't like
it is expected: that's why this can be customized to turn the feature
off.  But I see no real reasons to complicate the mode or invent new
untested aspects of it, just because a few people dislike it or have
their doubts or ideas about how to turn it on/off selectively.

So I don't think we should change anything in this by default.  If
someone really wants a way of enabling this more selectively, that's
fine, but then this new behavior should not be the default, because
that's not what we decided and not what we asked the users to provide
the feedback about.