[Top][All Lists]

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

RE: [External] : Re: Default custom file was: Re: Propose to add setup-w

From: Drew Adams
Subject: RE: [External] : Re: Default custom file was: Re: Propose to add setup-wizard.el to ELPA
Date: Fri, 7 Jan 2022 18:06:12 +0000

> > The lack of lexical binding was longstanding.
> The lack of lexical binding was a shortcoming.
> A shortcoming is not behaviour, nor is it a feature.

You don't like/get the example of lexical-binding.

Consider `transient-mark-mode'.
Its existence in Emacs was status quo for a
very long time, and the behavior was OFF.
Until it wasn't - the status quo was changed
to ON.  Holy Toledo!

That was a backward-incompatible change in
behavior.  It affected thousands of users.
It took us _decades_ to get that change made.
Status quo, status quo, status quo.

And why was that change finally made?  It's
what those who decided expected that more
users would expect & want.  Users out in
the wild expect to see text that they select
to act on ("activated") be highlighted, so
they can see what they'll act on.

What was the effect on users who did NOT
want `transient-mark-mode' on by default?

They turned it off.  End of story.  Some
muffled grumbles, nothing more.  Why?
Because you can still use Emacs as before -
just turn `t-m-mode' off (Customize).
Happy campers all around.

Why didn't we go all the way toward what most
new users out there really expected, which is
something more like `delete-selection-mode'
(which turns on `transient-mark-mode')?  Why
stop with `t-m-mode', which corresponds to
neither what users get outside Emacs nor what
Emacs behavior is with `t-m-mode' off?

We should have, IMO.  Not enough weight to
balance the rotund body of Status Quo.  I've
been betting on `delete-selection-mode' being
turned on by default after a few decades, but
it's already been a few decades now...  (I'm
still betting on that happening sometime.)

I'm as strong a proponent of not rocking the
status-quo boat as anyone.  And opinions can
certainly differ about whether `custom-file'
should default to a file name.  But what's
the downside of changing such a default

A relatively few users - those who remain
wedded to using only their init file - would
need to set `custom-file' to their init file
(or to nil, if we interpret that as using
the init file after the default change).

A big deal?  I don't think so.  Just like
it ultimately wasn't a big deal to turn on
`transient-mark-mode' by default.

> > The absence of a `custom-file' by default is "relied on"?  How so?
> Emacs would start to behave differently for people who did
> not explictly set custom-file if it gained a default value.

Yes, and?  Anyone can rely on the behavior
they've long relied on and enjoyed, by just
setting `custom-file' to their init file.
End of story.

> > How so?  Are you talking about a minority of users having to
> > explicitly say that they don't want a separate file - e.g.  simply
> > setting `custom-file' to nil?
> You may call them a "minority", but all people are important.  There is
> no need to cause useless churn for people, just because some other
> people have differing preferences.

In the case of `transient-mark-mode' I'd wager
that the _vast_ majority - maybe 90% - of
existing Emacs users had `t-m-mode' off when
the default was switched to on.  And I'd wager
that a minority of them bothered to switch it
to off after the default changed.  And today
I'm guessing that relatively few Emacs users
set it to off.

It's not only about individual preferences,
and especially not only about _current_ ones.

It's also about what we expect will be best
for most users, and in particular most users
in the future.  Most Emacs users are future
users, not current users.  What's the best
behavior for them?  I think it's to separate
the file that Customize writes to from their
init file.

But _every_ user will have a simple, trivial,
quick, one-time way to get the behavior they
prefer: just set `custom-file' to the file
they want Customize to write to, whether
that be their init file or another file.

Sensible behavior by default for everyone.
Individual preferences respected.  Happy
campers, all.

When the default of `transient-mark-mode'
was switched we definitely had in mind
potential/future users as well as current ones.

> > I'm assuming you agree it's generally better, for more people than
> > not, to use a separate `custom-file'.
> Yes, I agree.  If this discussion was started at the introduction of
> `custom-file', then I would certainly have argued for it to have a
> default value.

That's the right starting point, to think
about what the behavior should be.

Next comes the question about how much of
a disturbance changing to that design
would cause.

> > There are more future than past users, and for a new 
> > user the "other thing" of longstanding habit doesn't apply.
> How many future users there will be is for
> the future to say, not for the present, 

The exact number, sure.  But not the relative
number.  Unless Emacs is blown off the globe
it's certain that there will be more users in
the future than there are today.

> where changing the default value will only
> serve to churn the already muddy waters.

Diehards who said the same thing about turning
on `transient-mark-mode' will admit today that
their alarmism was misplaced.  They still live
happily with `transient-mark-mode' turned off,
as their personal preference.  Really not a
big deal, though they didn't think so at the

reply via email to

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