Subject: bug#21695: [External] : Re: bug#21695: 25.0.50; Change most occurrences of `setq' in Emacs manual to `customize-set-variable'? Really?

From: Drew Adams <[email-masked]>
Date: Thu, 2 Sep 2021 17:08:10 +0000

> The potential issue is to hide the developer's view of how to proceed
> or how things work by presenting them with another interface.

What developer's view would be hidden?

In what I proposed more would be made explicit
to users.  We'd point out that `setq' with
options can be problematic, and how/why so.

> It would be much better to bridge the gap between
> the user and the developer.

What developer are you talking about, here?
What gap?

> Choosing to replace `setq' with `customize-set-variable' would be like
> cutting yourself off from an alternative path.

How so?  What alternative path?  Alternative
to what?

> In other words, this would lead to the following situations.
> 
> ‣ customize-set-variable: “Okay, so I choose the value of this
>   parameter.”
> 
> ‣ setq: “I need to change the value of this variable to change the
>   operation.”

Sorry, but I don't understand those descriptions
or what you intend as the difference.

The difference, IMO, is that the former is for
user options.  The latter has been presented as
for all variables, but for some options it can
be problematic.  The former is never problematic
for an option (or even for a non-option - but
that's another story).

> Even though `customize-set-variable' is more convenient at first, it is
> a bit like discouraging the user from taking another route by blocking
> the way: too complicated.

It's been argued by some that it's less
convenient.  But what "way" do you think it
blocks, and how do you think it does so?

> With the other approach you can always use
> both `setq' and the *Customize* interface
> (simultaneously and as the last resort).

Dunno what the "other approach" is.  But if
by that you mean use `setq' with options,
then I guess you're saying that users can
use `setq', and if they run into the gotcha
(which is seldom, admittedly) they can always
use the Customize UI to take care of that.

Sure, they can.  Once they figure out what's
happened.  Once they've fallen into the hole
in the black of night, and they figure out
that they're in a hole, and they grope and
find a rope to climb out with, they'll be
fine.

And hopefully by that experience they'll
have learned not to use `setq' with (at least
some) user options.  And maybe from then on
they'll hunt down each option's defcustom,
to see whether it uses :set or :initialize,
and _only_ if so will they use Customize.

IOW, a lot of trouble (falling into the pit,
learning how to get out) and bother (from
then on, checking each option to see if
`setq' can safely be used with it, of if
not bothering to check, then risking the
pit again).