
Keyboard vs. the Mouse pt. 3 - EdiX
http://www.asktog.com/SunWorldColumns/S02KeyboardVMouse3.html
======
hollerith
Since my discovery of it in the 1990s, this article has caused me to ignore
literally hundreds of reports from programmers that the keyboard is faster
than the mouse because those reports gave no indication that the speeds had
been objectively determined.

The most important thing I gained from this article is an awareness of the
effect by which planning a sequence of editing keystrokes tends to interrupt
tasks like writing prose or writing code more than "purely perceptual" tasks
like positioning the mouse cursor tend to do. Highly recommended.

~~~
leephillips
But the experiment does not show that the mouse is faster than the "keyboard".
It shows that the mouse is faster than using the cursor (arrow) keys for a
task where doing the latter would obviously by extremely slow. For me, "using
the keyboard" means typing ":1,$s/|/e/g". Say there are 100 instances of "|"
to replace. Which do you think will be faster?

~~~
Symmetry
Lets ignore the fact that this is a search and replace since that just makes
the contest painfully unfair. Normally when using a good text editor like
emacs or vim and you're moving somewhere from far away you do a search. Or if
you move manually you start out moving by paragraphs, then by sentences, then
by words, then finally by characters when you get to the right word. But using
the arrow keys you go the same speed the whole time no matter how far away you
are. I understand that Word might not have all those fancy movement modes, but
it does let you go faster by using Ctrl-Arrow and I don't see why Tog didn't
at least let his test subject do that.

~~~
leephillips
Indeed. I'm at a loss trying to understand why he thought he was demonstrating
anything interesting. There would be no harm, except that now and then you
hear people claim that it has been proven, by _studies_ , that the mouse is
faster than the keyboard. I suppose they are quoting people who are
paraphrasing people who have sort of heard of this trivial study.

------
chrismorgan
This is all very well for the particular task, but now let's get into
_serious_ keyboard usage, where the difference is made.

The real approach to this particular problem (yes, I know it is a specialised
problem; knowing when to use the keyboard and when to use the mouse is part of
the matter) is to use find-and-replace functionality.

\- The find and replace approach using Word for Windows, keyboard: Ctrl+H
[Find and replace; shortcut may not be correct, I'm just working from distant
memory], |, Tab, e, Alt+A [replace all].

\- The find and replace approach using Word for Windows, mouse: find the find
icon. I believe it's near the end of the Home tab in the ribbon, now. Click on
it. Go to the Find and Replace tab (probably?). Focus on the Find field. Enter
"|". Switch to the Replace field. Enter "e". Click the Replace All button.
(Probably agree to replacing from the start of the document as well.)

Now tell me that _that_ was faster with the mouse than with the keyboard
(assuming that you knew where everything was from the start).

Vim.

\- Keyboard: :%s/|/e/g<Enter> (and it's in your muscle memory, anyway, so that
the whole thing takes no more than four seconds).

\- Mouse, find-and-replace way (assuming you have the toolbar showing - I
certainly don't): much the same as Word. It's in a toolbar icon.

(Note that if you have set ``behave mswin`` you can have the dubious
convenience of a Word-style select mode with which you could do the replacing
the slow way as in the article in just the same manner).

Which method is faster in _this_ specialised case?

Being aware of _actual_ timing issues and knowing when to use one and when to
use another is important. I do, very occasionally, use the mouse in Vim. But
Vim has such a good keyboard interface (and, you might choose to argue, not a
well-tuned mouse interface) that the mouse is needed precious rarely.

And every time I've gone back to make a modification in this comment while
writing it, I've used the keyboard. And I _know_ it was faster.

------
olinsibert
I've seen this article before, and every time I've said to myself, "Gosh, how
non-intuitive. I'll have to remember that"

Today, I had a little time and a little more skepticism, and said "Gosh, I
wonder if it's actually true".

I, too, replicated the experiment, and for me, at least, it's completely
wrong.

Conditions: Microsoft Word 2003, 12-point default, whole page view, 15-inch
laptop screen, 1200x1920 resolution

Text: the paragraph of Peter Deutch's letter

Keyboard: 128 seconds Normal mouse: 167 seconds (30% slower) Lenovo Trackpoint
mouse: 228 seconds (78% slower)

Yet another disadvantage of the mouse (and Trackpoint) was that the task
required far more attention and generated more anxiety: it was difficult,
error-prone, clumsy, and frustrating--I kept wanting to stop and rest my
fingers. That is yet another reason that the mouse is a poor choice for this
kind of task. With the keyboard, I could work much longer without anxiety.

I hypothesize, but have no idea of how to test, that this greater comfort
results from not relying on eye-hand coordination for the details of the task,
but rather being able to coordinate with a mental model of knowing what the
cursor keys will do without having to see it happen on the screen.

------
j0j0r0
so, using cursor keys alone and in MSWord (!) is slower than using a mouse...
no mention of "real" editors e.g. emacs, vim, etc... worthless drivel... how'd
this get voted up to waste my time?

------
EdiX
I tried to replicate the experiment and couldn't. In fact I got the opposite
result, with the mouse taking twice as much time as the keyboard.

I wonder if it is because of the increased pixel density.

------
Symmetry
So, someone claims that the keyboard is faster than the mouse in emacs with
with small fonts, and then Tog says that he had previously showed that the
keyboard was slower than the mouse in Microsft Word (presumably with a normal
sized font since he mentions he did the test before getting the letter). Not
exactly responsive, I expect that both the letter-writer and Tog are perfectly
correct.

~~~
abecedarius
Worth mentioning that the someone is
<http://en.wikipedia.org/wiki/L_Peter_Deutsch>

Not in Emacs btw but in Smalltalk with Emacs keybindings.

------
mistercow
I guess I'm not really surprised that using the mouse is faster for specific
tasks like arbitrarily moving the cursor. It's a much more random access kind
of device than the keyboard.

What really makes the keyboard shine is the use of shortcuts. Change the task
to a sane one, like find and replace, and I guarantee you I can hit that
shortcut before you can get your mouse up to the menu bar.

------
tiziano88
I, for one, prefer using the keyboard as much as possible mostly for comfort
reasons. I use vim and various vi-plugins (in chrome, intellij, eclipse) for
code-editing tasks, and I even switched to a Kinesis Advantage keyboard (best
200£ spent ever), and my typing speed considerably decreased for a while,
though the comfort was greatly improved, which was my goal (now I'm back up to
speed, and probably even a bit faster than before). To be honest, when
programming, the bottleneck for me is definitely _not_ my typing speed, is
that really the case for anyone?

~~~
hollerith
I think the Kinesis Advantage is a very bad keyboard. Particularly, although
the key switches (Cherry Browns) are fine, the way they are arranged relative
to each other has very bad ergonomics, and any of the many non-Kinesis boards
in which Cherry Brown key switches are arranged in a single plane has much
better ergonomics. The reason the Advantage is bad is that when every key has
a different "altitude" (height relative to the desk or floor) and a different
orientation (the direction in which the center-line or "axis of travel" of the
key points) it becomes much harder for the person to memorize the location of
the keys and in particular much harder to memorize the "vector direction"
(i.e., distance and direction) between every pair of keys and the vector
direction in which the person's hand would need to move to strike every key
perpendicularly.

I used a Kinesis Advantage (well, a Kinesis Essential, which has the same
Cherry Brown switches and the same arrangement of keys into two "bowls", one
for the left and and one for the right hand) as my only keyboard for about 2
years. I bought it to try to get rid of my RSI, but my RSI continued until I
was shown (by a piano teacher) the Taubman technique by which piano players
avoid RSI, which is when I realized that to get rid of my RSI I would have to
stop typing or I would have to memorize the locations of all of the keys on
the keyboard. (Actually, certain keys, like backquote, right bracket, left
bracket, backslash and backspace, I do not have memorized. I look at the
keyboard when using those keys.)

The Kinesis Advantage is a consequence of thinking of typing as a sort of
"sign language" to be perceived and understood by the machine. That is IMHO
the wrong way to think about typing. The correct way IMHO is to think of
typing as a long series of physical actions. Imagine you have a plunger in
front of you. I.e., a 3-inch-diameter disk of plastic attached to a beefy
value or switch. Imagine that you need to activate the plunger reliably -- to
minimize the chances that your first "activation attempt" will fail. So now
you have some "perceptual" / "non-cognitive" decisions to make, namely, will
you have to get your shoulder or elbow in a different position in order for
your hand to contact the plunger cleanly and perpendicular to its axis of
travel? How fast should your hand be moving when it meets the disk? Do you
want to take a "backswing" before your "swing" for the plunger? (I.e., move
your hand first in the direction opposite to the direction it will need to
move to activate the plunger.) Good typing is more like that than it is like
making signs in the air the way that users of sign language do. (The DataHand
keyboard takes the typing-as-sign-language metaphor even further than the
Kinesis Advantage does, and the DataHand is an even worse keyboard than the
Advantage is. Here is a pic of the DataHand:
<http://www.atpm.com/7.05/images/dh-handinunit.jpg.>)

These comments on the Kinesis Advantage can be tied with the topic at hand.
The reason the Kinesis Advantage is praised by so many programmers IMHO is
that those programmers do not realize or understand the need for a keyboardist
to memorized the locations, etc, of all the keys. That memorization is a
_perceptual_ task rather than a "high-level cognitive" task such as planning a
complicated sequence of movements or operations or solving an algebra problem.
Similarly, using a pointing device is a perceptual task. (More precisely, it
is much more perceptual than the alternative ways of achieving the same result
using the keyboard.) In both cases, we have large vocal populations of
programmers (namely, Kinesis Advantage lovers and lovers of keyboard-centric
tools like Vim, Emacs and Xmonad) who prefer to substitute cognitive tasks for
perceptual tasks whenever possible. I suspect that that preference is a
mistake and that those programmers would be better off in the long run if they
tried to reduce the fraction of time they spend in high-level cognitive tasks.
A possible exception is programmers whose frontal lobes are still developing,
i.e., programmers under 22 or so, but certainly any programmer over the age
of, say, 25 who prefers a high-level cognitive task when a perceptual task
would work just as well to achieve the goal is IMHO misusing his or her brain
more likely than not. (I am almost sure it would be misuing _my_ brain for
_me_ to do so. I am much less confident about other people although I am
confident enough to use this comment to share my suspicions.) Often there is
no alternative to engaging in high-level cognitive work -- it is the only way
to achieve some goal -- and in that case I am all for it if the goal is
important enough.

I think it is important for people expressing an opinion about a tool to state
how familiar they are with the tool. Consequently, let me state that I used
text-mode Emacs ("emacs -nw") every day for 18 years. When I finally switched
to an editor that allowed me to position the cursor (and do other things) with
the pointing device, I realized I should have made the switch much earlier.
Parenthetically, the editor I switched to was graphical-mode Emacs, but I
customized it to extend the range of tasks that could be done with the
pointing device, and I temporarily disabled the arrow keys to train myself to
use the pointing device to move the cursor. (In fact, I permanently bound up
arrow and down arrow to commands that scroll about one-eighth of a screenful,
which is similar to what what up arrow and down arrow do in Plan 9 and even
more similar to what they do in Firefox.) Also, I would probably have switched
to Textmate, Sublime Text 2 or Gedit if I had not already invested a lot of
time and energy into Emacs, including the writing of 5000 lines of Emacs Lisp
code to customize Emacs. I would probably use _some_ keyboard shortcuts if
where using Textmate, Sublime Text 2 or Gedit.

~~~
ZeroGravitas
Why would it be easier to remember how to hit keys on a flat 2d plane? My
fingers are all different lengths.

~~~
hollerith
If what I have been saying in this comment section has any value, then most
people have already committed to muscle memory how long each of their fingers
is relative to any other finger on the same hand.

If you just hit the D key and want to hit the T key next, on the Kinesis
Advantage, in addition to having to know how far the D key is from the T key
in the two horizontal dimensions, you have to know the delta in altitude
(i.e., how far it is in the vertical dimension).

In addition to the "delta in altitude" information just described, almost
every key on the Kinesis (the axis along which the key will travel when
pressed) "points" in a different direction, which is two more degrees of
freedom. So, for almost every key on the Kinesis, I would have had to
"memorize" (i.e., commit to muscle memory) 5 "scalar values" in contrast to
the 2 scalar values for every key on a normal keyboard.

I am not saying that _no one_ can "memorize" that information; I am saying
only that my estimate of the time and effort required for _me_ to memorize it
caused me to ditch my Kinesis for the standard planar arrangement.

Note that I used a Kinesis for 2 years. It was only after I realized that I
would need to "memorize" where the keys are (and what direction they travel
when pressed) to recover from RSI that I gave up on Kinesis.

And yes, I have been free from RSI in the six years since making this
realization and ditching my Kinesis.

And yes, I think most of the ergonomic keyboards currently sold by Microsoft
are bad for the same reason the Kinesis Advantage is bad -- particularly those
keyboards that could be described as "wave shaped" or "hill shaped". (At least
the Kinesis Advantage has decent keyswitches!)

ADDED. There is more wrong with the Kinesis than just the amount of
information it requires a person to commit to muscle memory. I just got done
stating that the DataHand is an even worse keyboard than the Kinesis, and the
DataHand requires a person to have only a few "muscle memories". If I
understand correctly and if the DataHand device is a good fit for the person's
hand, for every character, the person need know only which finger to twitch
and which of four directions (up, down, left or right) in which to twitch the
finger.

The reason the DataHand is such a bad keyboard is that it causes the person to
repeat over and over again a kind of movement that is very different from the
kinds of movements people are used to making and are good at making.

An example of a kind of movement that humans are good at is striking something
with a hand or a finger. There is a lot of (conscious and unconscious) "data
processing" going on when a human is getting ready to hit something with a
hammer or with his fist, hand or finger. My belief is that the best way to
avoid RSI and other problems is to get the brain to devote a lot of "cpu
cycles" to planning out the physics of every keystroke.

The DataHand (and to a lesser extent the Kinesis) has bad ergonomics because
it makes it hard for the brain to do detailed physical planning. This planning
would entail perceiving or remembering the exact location, relative to the
striking finger, of the key to be pressed. In contrast, when all the keys are
on the same plane, it is more likely the the brain will plan out "ballistic"
movements resembling hops, or plan out a "backswing" before the "swing", and,
again, we want to get the brain deeply engaged in planning movements.

Designing the keyboard so that every key is right next to a finger tip is bad
ergonomics because the brain is poorly adapted to carrying out the resulting
key-pressing movements.

To summarize, the most important things for avoiding RSI are (1) choosing a
keyboard that encourages the right kind of movements (namely, the kind the
brain is good at planning) and (2) reminding oneself during typing that
pressing a key should be more like hitting a ball with a tennis racket than
making a sign with a flag, baton or the hand. Part (1) consists mainly of
avoiding so-called "ergonomic" keyboards like the DataHand, Kinesis and most
modern Microsoft "ergonomic" keyboards. The Microsoft Natural Elite keyboard
by the way was a good keyboard (well, besides the pretty crappy rubber-dome
keyswitches) because even though it was a "split" keyboard, all of the keys
designed to be hit with the left and lay in the same plane, as did all of the
keys designed to be hit with the right hand. But they might be hard to get
now. And like I said, the keyswitches are pretty atrocious even compared to
the (scissor-style) keyswitches on the good modern Logitech keyboard like the
K750.

------
olliesaunders
Switching is particularly costly. Just watch someone complete a web form who
doesn't know to press tab. Painful.

------
serichsen
Well yes, if you have a _really_ dumb editor that makes keyboard navigation
clumsy as hell, then you are faster with a mouse.

It is just like that if you go into the jungle, you are faster on foot than in
a Porsche.

------
mariusmg
The keyboard is always faster if you know what you're doing.

