[Top][All Lists]

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

RE: Emacs learning curve

From: Drew Adams
Subject: RE: Emacs learning curve
Date: Mon, 12 Jul 2010 22:58:50 -0700

> > But with the point of view of splitting (the verb), the 
> > answer unambiguosly agrees with Emacs terminology - you do
> > in fact split the window horizontally.  Take an axe, hold it
> > horizontally, and split the window.  Go ahead.  You get two
> > windows disposed vertically, one above the other.  It is 
> > simply incorrect to say that "`split-horizontally' splits
> > vertically".  Bad one, I'm afraid.
> Sure, the answer that you give is unambiguous, but unlike you 
> say it does not agree with Emacs terminology.

I stand corrected.  Thank you!

What I said is correct about the meaning of the name.  And Emacs is wrong about
it.  Emacs, like all of us, does not always speak the best English.

That just goes to show, however, that the command name is not so terribly
important for this kind of command.  Just as for the PageDown
(`scroll-up-command') example I gave, a user will not spend much time with the
actual command name `split-window-horizontally'.  And _I_ obviously didn't spend
enough time (zero) testing the name against the behavior.  mea culpa.

And just as in the case of the scroll-up example, the doc here makes things
clear.  The doc does not say that the command `split-window-horizontally' splits
the window horizontally (because, alas, it does not!).  The doc says that it
splits the window so that the result is two windows side by side, i.e. arrayed
horizontally.  The doc is correct but the command name is incorrect.

So this is indeed a case where a poor choice was made for the command name.
Instead of trying to change the name as a fix, a (successful) attempt was made
to rectify things in the doc.  That's probably the best that can be done at this
point, given that this function is not only a user command (where the name is
not so important).  It is also a commonly used Lisp function.  Maybe it could be
aliased away, but I'm not sure it's worth it.

I was mistaken in thinking that you were asking for the behavior that Emacs in
fact provides, and that by explaining the name I was defending the behavior that
it does not, alas, provide.  We agree now that `split-window-horizontally' does
_not_ do what it says - it splits the window vertically.

As I said, words do matter, and it is sometimes the case that less than ideal
wording is chosen for something, right from the beginning.  If it is poorly
worded doc, that can be fixed and it often is, thanks to the efforts of multiple
contributors (users, developers).  But when there is a poorly named function,
variable, face, or whatever, the ability to correct the name is more limited.
Even there, it does happen (sometimes by attrition/obsoletion or aliasing).

Things (bugs) like this need to be handled on a case-by-case basis.  What should
be done about the particular case of the command names
`scroll-(up|down)-command' at this point?  Dunno how easy it would be to change
them (they certainly cannot just be reversed).  My guess (only a guess) is that
these names will remain with us for a long while.

But that's not cause for much concern.  We really do have bigger fish to fry.
It is not the backward choice of a command name for window splitting that puts
Emacs in contradiction with other apps or makes Emacs difficult to learn.  I
seriously doubt that new users will stumble for long over the
vertical/horizontal command names here.

FWIW - Just in case you need a demonstration of the fact that I do take words
seriously and I feel strongly that Emacs can and should improve its verbal UI
(doc, names), take a look at today's back-and-forth for bug #6591.  That will
also show that I am well aware (!) how difficult it can be to advance the Emacs
schmilblick.  And it will show that I somehow continue to believe that people
can learn, even in the face of apparent futility.  Still tilting at windmills,
no doubt.

Thanks for the correction.

reply via email to

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