Subject: RE: bug#8492: 23.3; Time to use a different binding for completion?

From: "Drew Adams" <[email-masked]>
Date: Wed, 20 Apr 2011 08:49:19 -0700

> Currently, the "usable default" is ESC TAB.
> It's a bit longwinded, so it'd be good to find a better solution.

It's not very longwinded.  It was used for a very long time before ALT + TAB was
available for the same thing.  It was used by many perfectly capable and fast
programmers, including the one who wrote Emacs (practically overnight) and gcc.
;-)  Likewise `C-M-i' - not very longwinded, and long available for this.

And anyway it doesn't really matter all that much how longwinded a _default_
binding is.  (Yes, there is no reason to purposefully use longer bindings when
better, shorter ones can be found.)

> Since this problem has been around for a long time and no good key has
> popped up during this time, I believe that using TAB is the
> way forward, which means we need to figure out ways to make it work in
> the cases where it currently doesn't.

So your logic is that simply because you cannot find an available key you want
to complicate the behavior of the command so that it acts, in effect, as
multiple commands depending on the context.

That's not a good argument.  Occam stands with his razor against it - you are
multiplying things needlessly.

Keep it simple.  Find a key or let users find their own key for a simple,
straightforward command (i.e., that does only what M-TAB does currently).
Forget about combining 36 different behaviors on the same key.

In practice, so-called "DWIM" too often means lousy, half-baked compromises and
"do-what-some-programmer-who-thought-herself-clever-figured-would-be-innovative-
and-loved-by-everyone".  The "I" in DWIM is too seldom the user, and the "WIM"
is too seldom accurate.

Do I really care, for M-TAB or `completion-at-point'?  Not much.  I do care that
we needlessly complicate the behavior of keys with compromised,
not-so-clever-after-all DWIM-wittedness.

Please go back to the problem itself and look for a simple solution _to it_.

M-TAB is not easily available on several systems.  OK, so you want a different
key as the default binding for `completion-at-point' (or whatever).  OK, so pick
another key.  Problem solved.

But please do not redesign the behavior to become hydra-headed so it tries to
adapt to multiple contexts, just because you cannot think of a good default key.
That makes little sense.

And TAB, in particular, is *not* "the way forward for this".  If ever there was
a key *not* to double-up on for this (triple? quadruple? pentuple?), TAB is it.
It's just about the poorest choice possible here.

(Yes, I am aware that some users have done exactly what you suggest and like the
effect.  Pick any behavior and you will find some users who are happy with it to
the point of proselytizing.  But such a chimera is not a good solution for
vanilla Emacs.)

Just one opinion, and no, I do not really care much.  But this is misguided,
IMHO.