
Is the keyboard faster than the mouse? - darwhy
https://danluu.com/keyboard-v-mouse/
======
FollowSteph3
If you really want to see the advantage of keyboard hotkeys just look at the
top Starcraft players. Yes they still use their mouse but they need hotkeys to
even be able to compete at that level. They actually measure the number of
actions they can execute per minute! There's no way it can be done only with
either just the mouse or keyboard

I think software development also falls into this category. Some hotkeys are
at least an order of magnitude faster. And 90% of the time hotkeys will be
faster. But in some cases you absolutely need to use your mouse, it's just
much faster.

Here's a YouTube video that discusses what it takes to be a competitive
Starcraft player and shows them entering actions:
[https://youtu.be/zmYhX8fjmo8](https://youtu.be/zmYhX8fjmo8)

~~~
UnoriginalGuy
> I think software development also falls into this category.

Software development has absolutely nothing to do with code entry speed.

Requirements gathering, mockups, design, testing, and thought make up the vast
majority of development time. Then even once you get down to coding, you're
often maintaining existing code rather than writing code from a blank slate,
which requires more time reading and thought than actual modifications. A one
character code change might take an hour; but you spent that time testing,
following workflows, and documenting.

So the supposed developers online who obsess over their mechanical keyboards
and 1ms time saved hotkeys really confuse me. I genuinely think the day to day
software development that I and my colleagues do has no relationship to this
bizarre online fetish with code entry speed.

If I really want to improve my coding performance, I'll do a standing meeting
instead of a sit down meeting, reduce the number of people in a meeting, or
stop requirements slip by completely clamping down on change requests mid-
work. Those are my performance tips, and they save hours, not milliseconds...

~~~
lukas099
What about the argument that less time spent typing (and more 'automatic' text
editing) means shorter interruptions from thinking, and therefore more
productive thought?

~~~
UnoriginalGuy
You spend a lot of time thinking, and interruptions negatively impact that.
The concept that you only think while you type is non sequitur; if that's the
case then even with all of the hotkeys you're still going to lose your train
of thought every couple of minutes while you test, navigate, or dwell.

Again, the kind of software development people claim they do online, and what
I see day to day have no connection to one another. If you're literally
spending a whole day typing then you're extremely unusual. Even when writing
fresh code with no front end, a lot of time is spent mapping data to
structures, requirements building, diagramming, testing, or just considering
the most maintainable way to solve the problem(s) presented.

These programming speed challenges that have popped up in the last few years
are lies too. All these people do is pre-solve problems slowly and
thoughtfully, then regurgitate those solutions within a very small timespan on
the day. That's why many of them let the contestants create their own problem
to solve, or give them very generic problems (e.g. twitter clone).

~~~
mistercow
> The concept that you only think while you type is non sequitur

That's not the concept being argued for. The concept is that you _aren 't_
thinking while you type; you're dumping what you already thought of.

------
Merad
The real question is, does it matter? I've been programming for nearly 15
years and I'm really struggling to think of a time that my productivity has
been limited by the speed with which I can interact with the computer. I've
never actually tried to keep track of how my time is spent, but these days I
wouldn't be surprised if I average 5+ minutes of
reading/thinking/planning/discussing/etc. for every minute spent editing code.

~~~
TeMPOraL
For me, it's a matter of maintaining flow. I don't type code all the time, but
when I do, I want to edit at the speed of thought.

~~~
mnem
I suspect you'd need a few chord based keyboards to edit at the speed of
though.

------
TurboHaskal
I don't know. I went from "how do I exit vi" to "mice are for losers" to "who
am I trying to impress anyway".

My productivity is still crap even though I may look like a professional
StarCraft player while coding.

~~~
mihaifm
> "who am I trying to impress anyway"

Agree, besides you need your mouse to copy-paste code from StackOverflow
anyway

~~~
computerex
Not with Vimium you don't.

~~~
kirubakaran
How do you select a block of text with Vimium?

~~~
garou
Visual Mode [https://github.com/philc/vimium/wiki/Visual-
Mode](https://github.com/philc/vimium/wiki/Visual-Mode)

~~~
digi_owl
Note btw that Firefox support something called caret browsing (maybe other
browsers as well, but i stick with Firefox if technically possible). Hit F7
and you can navigate around a page using a caret.

------
hackcasual
I never feel while programming that I'm bottlenecked by my input speed.

~~~
ythn
Very true. People talking about how vim is so much more efficient than me
using VSCode with my "slow" mouse inputs and I'm just thinking about how my
brain is the biggest bottleneck of all - it completely dwarfs keyboard and
mouse bottlenecks.

~~~
WorldMaker
VSCode has a great Vim plugin these days and even without it, a ton of good
key shortcuts. Not that maybe you need them today, but options if you need
them.

I think that's probably the best summary here: it's great having options.

Also, speed isn't the only bottleneck to worry about. It's easy to forget
about things like ergonomics. Things like hand movements in mousing and back
and forth between mouse and keyboard can slowly take their toll. Again, it's
great to have options to control the overall amount of movement.

~~~
chillee
Awww, thanks.

(One of the developers of VsCodeVim here.)

------
kps
Back when the Ask Tog piece came out, I wrote a Slashdot comment along the
same lines as this article.

I had one _additional_ point. Keeping in mind that this uses a WYSIWIG editor,
use a very slightly different benchmark task: instead of replacing every ‘e’
with ‘|’, replace every ‘l’ with ‘|’ — and by the way, your text is in 6 point
Helvetica. And you'd better not miss any, or replace any ‘I’s.

The key (badum tish) is that characters on a keyboard are _semantically_
connected to characters in a document, in a direct and obvious way. By
contrast, there is no such direct link between mouse (or touch) and the
document, only a transient link via the document's current presentation. With
a keyboard, you can operate on text; with a mouse, you can only operate on
pictures of text.

~~~
KirinDave
> By contrast, there is no such direct link between mouse (or touch) and the
> document, only a transient link via the document's current presentation.

It need not be this way. It's simply an utter lack of imagination on part of
modern peripheral makers. I had a touchstream keyboard and after a bit of work
I had emacs integration that was absolutely fantastic and involved semantic
gestures.

There is nothing fundamentally flawed about suggesting that gestures could be
semantically meaningful.

------
darkerside
| the author typed a paragraph and then had to replace every “e” with a “|”

As a vim user, just thinking about doing this manually makes me tear up.

~~~
jandrese
I would write a _C program_ to do it before I would go and manually
select/replace every instance using a mouse.

~~~
tcfunk
But what if, in the midst of writing this program, you need to rename all
occurrences of a variable?

------
andybak
Another point missed by anyone using the AskTog article to argue against the
need for keyboard shortcuts is the fact that you have two hands.

My own Photoshop use often involves simultaneous or near-simultaneous use of
both keyboard _and_ mouse. Sometimes I start one action before the other is
completed so my hand or cursor is already near the right place.

There is no conceivable keyboard-only or mouse-only control scheme that could
better this for one important reason: assuming _some_ use of the mouse is
needed (true of Photoshop and many other applications although probably not
true of text editors and IDEs) then the cost of moving my right hand from the
mouse to the keyboard and back again is a very large cost.

~~~
kps

      > you have two hands.
    

Every watch ‘the mother of all demos’⁰? Engelbart's system was designed to be
used with one hand on the mouse and the other on the chordset. Xerox followed
this with the Alto, and on to the Star¹, eventually dropping the chordset but
with the same model: the mouse and the left-side function key block worked
together.²

⁰ [https://youtu.be/yJDv-zdhzMY](https://youtu.be/yJDv-zdhzMY)

¹
[http://www.digibarn.com/friends/curbow/star/keyboard/](http://www.digibarn.com/friends/curbow/star/keyboard/)

²
[https://youtu.be/_OwG_rQ_Hqw?t=54m25s](https://youtu.be/_OwG_rQ_Hqw?t=54m25s)

------
js8
Another problematic point that perhaps should be raised about those studies:

Most of today's software is optimized for usage of mouse, with keyboard only
as afterthought. But we should compare software optimally designed for the use
of the mouse with software optimally designed for the use of the keyboard
(e.g. Vim). Though I am not sure former really exists - which is perhaps a
testament of how slow mouse actually is. :-)

~~~
Qwertious
>Most of today's software is optimized for usage of mouse, with keyboard only
as afterthought.

And can I add my personal pet peeve: Keyboard COMMANDS are referred to as
keyboard "shortcuts". As if using the keyboard for anything other than typing
text is somehow an invalid usage, and the _real_ way of doing it is with a
mouse or something?

------
jlouis
Having spent a lot of time in emacs, vim and plan9's acme(1) editor (which
uses the mouse heavily):

The speed is about the same for most work. The time spent thinking is the
major task which happens, so the time it takes to edit your buffer is not that
dominating.

When you have unique reordering which you only have to do once, the mouse in
acme(1) tend to beat emacs/vi. One subtle trick is that the acme cursor sits
"between" characters, not "on" a character, which makes selection of text much
faster. Also, if you click on eg, { it marks to the }. You need a precise
mouse and some acceleration to make mouse flicks possible, but then it
absolutely rocks.

On the other hand, whenever you have a repeated task, you are better off
programming a solution. Here macros or vi move-style comes in handy. In
acme(1), you use the built-in command language (which is close to the sam(1)
command language). It is a bit easier in emacs/vi I think, but only a bit.

disclaimer: I didn't really time myself, so there may be a perception mistake
in these observations. But I don't find one method vastly faster than the
other. In a typical editing session, the mix of tasks makes sure that on
average the editing speed is about the same. OTOH, I have enough muscle memory
for emacs-fluency, so a newcomer would probably be faster on the mouse than in
a keyboard-binding-experienced vi/emacs programmer.

------
creeble
Anyone have RSI problems with mice?

I switched to a touchpad over 10 years ago, and my right hand RSI problems
went away.

But with an Ubuntu 16.04 upgrade, the touchpad driver went to hell (don't get
me started...) and I've been using a mouse again for the last several months.
So far no problems, but I really wish I could go back to my once-trusty
Logitech touchpad.

~~~
mnm1
Yes. I'm waiting for Apple magic track pad 2 support in Linux before I switch.
It's by far the best track pad I've ever used. Unfortunately Linux track pad
support is shit as you point out. I'm hopeful it won't be in a few years. And
people still wonder why Linux on the desktop will never happen. This is why.

~~~
creeble
My experience was that my trackpads worked _perfectly_ with 12.04 and 14.04,
but in 16.04 they changed the driver to... something that uses 'synclient' to
adjust parameters. And this was a disaster; there are some 60 params that
affect operation, and many of them have completely non-working defaults (like
you sweep your finger across the touchpad and it randomly selects stuff).

I tried for weeks to try and find some synclient settings that made my
trackpad work as well as it did in 12.04, to no avail. I have another machine
still running 14.04 (don't ask) and the trackpad still works perfectly.

I tried posting on StackExchange, but I am apparently the only person (besides
you?) that cares about Linux support for trackpads, or has trouble with the
support in the current driver.

So yes, I'll second your comment about Linux on the desktop.

~~~
mnm1
Which trackpad do you use? It seems anything more than point and click is
almost hopeless, though I did get gestures working on the built in MBPro
trackpad in Linux Mint.

------
nhumrich
Its not about speed, its about ergonomics.

------
mnm1
As someone diagnosed with RSI, I'm looking for ways to type and use my track
pad slower and less of the time. I find that other than text chatting with my
co workers, nothing really depends on me being able to type fast. I don't know
what kind of programming work the author does, but I find I have to type/track
pad very little even for large refactorings and slowing down from about 80wpm
typing to probably half that hasn't really affected my working speed. I'd say
I'm at least half to a quarter as slow both typing and tracking (used to use a
trackball which was faster than any track pad or mouse) and it's affected my
overall speed less than 10%. There are many ways to automate and avoid a lot
of repetitive actions in programming which also help quite a bit.

------
Karrot_Kream
An article is posted bemoaning the lack of rigor in mouse and keyboard speed
measurements. Instead of posting anything of rigor, tons of posts are done
about more anecdotal input experiences.

I love my keyboard-heavy emacs workflow, but come on, at least pretend to read
the article or seek some rigor in things.

------
KozmoNau7
Keyboard is best for digital input (keypresses, either/or actions), and mouse
is best for analog input (precision, sweeps, variable speed).

Not that complicated.

------
rjmill
My mouse cursor is in a different place every time I reach for it. My keyboard
is always in the same place. Sure, if I'm using a cursor with my keyboard,
I'll have the same problem, but at least the cursor tends to be in the exact
same spot I was already focusing my attention, ie where I was just typing.

If I'm executing an action with my mouse, the path between my cursor's current
location and where I need to click is almost always different. I have to move
my attention to the cursor, and I can't just rely on muscle memory to do the
command.

If I'm executing an action with a hotkey, the path between the home row and
the keys I need to hit are always the same. If it's something I do frequently,
it's in my muscle memory, and I don't have to shift my attention away from the
task at hand.

I don't care much about the speed at which I can accomplish a single action
(as long as it's not unbearably slow), but I do care about having to shift my
attention away from what I'm doing. If I'm doing something that requires a lot
of typing (eg, programming), I'll try to do as much as possible with the
keyboard. If I'm in a novel environment and have to rely on visual cues (eg,
surfing the web), I'll do most things with the mouse.

------
joegosse
Learning keyboard shortcuts in Excel yields massive returns on productivity.
For an intro, Joel Spolsky has a great tutorial:
[https://www.youtube.com/watch?v=0nbkaYsR94c](https://www.youtube.com/watch?v=0nbkaYsR94c)

Investment bankers are famous for working without a mouse in Excel.

------
WhiteOwlLion
There's a lot more potential for repetitive stress injury (e.g. carpal tunnel)
with using mouse on one hand constantly. At least with a keyboard, you are
distributing the stress among four fingers and a thumb. Although, admittedly I
use my right thumb for space rather than alternating with my left thumb.

------
moomin
Never mind whether it's faster. Is it more comfortable and less likely to give
you RSI? Grief yes.

Ironically, this is especially true for things muce are faster at. Drag and
drop is fast, but it kills your hand.

------
had2makeanacct
Okay that was quite hard to read, any reason for no formatting at all?

~~~
joeyespo
Agreed.

Been using My Style [1] for readability on his site. Even this small tweak
helped:

    
    
        body {
          max-width: 768px;
          margin: 32px auto;
          font-family: Helvetica;
          font-size: 20px;
        }
    

[1]: [https://chrome.google.com/webstore/detail/my-
style/ljdhjpmbn...](https://chrome.google.com/webstore/detail/my-
style/ljdhjpmbnkbengahefamnhmegbdifhlb)

------
tutufan
Spent some time on this a while back, and even wrote a driver that let me use
a game controller as a complete replacement for my keyboard and mouse.
Interesting but not really successful.

One key takeaway: The input bitrate that a competent typist can get from a
keyboard is quite high. As a guess, it might be 8x higher than with a gamepad
or mouse.

And as an additional detail, I've had more RSI issues with mice than keyboards
over the years, even though I use emacs.

------
nobodyorother
I'm surprised nobody mentioned Keystroke Level Modeling (KLM) or CogTool
(github.com/cogtool/cogtool), which divides up UI interactions into discrete
actions with specific times. It gives a pretty reasonable estimate overall,
and is great for comparing between multiple competing concepts/usage-models.

------
Razengan
Regarding speed across overall, day-to-day usage, the trackpad is closer than
a mouse – you can move the pointer a fair distance and click/etc. with just
your thumb while keeping your hands on the keys.

And on the new MacBooks, I'm pleasantly surprised how the Touch Bar saves me
from even reaching for the trackpad, sometimes.

------
tincholio
About this Tog guy, I've never heard of him before, but for all his claims of
doing UX research, he has 0 peer-reviewed papers, and the "experiment" about
the 'e's and the pipes is so laughably bad, that I wonder what's the point in
taking anything of what he says seriously.

------
dllthomas
Also worth mentioning, when it comes to picking or pointing from the keyboard,
is keynav. It lets you do a binary search in screen-space, which can be pretty
fast (though probably slower than the mouse if your hand is already on it).

------
whizzkid
One important area on where keyboard gets an unknown advantage is the muscle
memory.

Using mouse will require attention from your hand and eye both at the same
time. On keyboard, you can let your fingers work while resting your eyes.

------
marcell
Keyboard can be a bit slower, but I find that moving to the mouse interrupts
my train of thought. I'm not sure why but it seems to engage a different part
of my brain that pauses what I'm thinking about.

------
Morantron
If you want the fastest way in existence to copy/paste in terminal

[https://github.com/morantron/tmux-fingers](https://github.com/morantron/tmux-
fingers)

------
chrismorgan
If you _really_ want to make the question more interesting, throw a
touchscreen at it.

For general UI purposes, mice are _hopeless_ when you compare them to your
fingers touching the screen directly.

~~~
jandrese
Selecting text with a touchscreen is the pits. My big fat fingers obscure what
I'm trying to select and most of the UXes fit touchacreens make text selection
a second class citizen.

~~~
Razengan
> Selecting text with a touchscreen

is really not that inconvenient with the force-touch-on-keyboard on iPhones,
and two-finger-swipe-on-keyboard on iPads.

~~~
jandrese
I find it to be a big pain on my iPhone. You have to tap and hold for a long
time, very carefully not moving the finger so it doesn't interpret the gesture
as a scroll, then probably adjust its selection using those tiny fiddly little
blue touch thingies, and if you mistap at any point it resets everything. Then
you need to long tap again to bring up the options, but not medium long tap
because that will reset everything, nor have any wiggle since that will
scroll, nor super long tap since that does nothing...

The best I can say is that it's better than nothing. I use it from time to
time, but only because I have to.

~~~
Razengan
_> You have to tap and hold for a long time, very carefully not moving the
finger so it doesn't interpret the gesture as a scroll, then probably adjust
its selection using those tiny fiddly little blue touch thingies, and if you
mistap at any point it resets everything._

That isn't what I was referring to. Force-pressing on the _on-screen keyboard_
lets you move the caret around like a mouse pointer, by sliding your finger on
the keyboard. Pressing again/harder begins a selection.

------
desireco42
It depends, if it is wired or wireless ;)

I think we need both to be effective and this is false question in a way, but
still good to explore from usability point.

------
MichaelMoser123
My big problem in productivity is multiple cut and paste buffers in vim; i
would love to see a good way to use that.

------
mindleyhilner
Small typo: "hunt-and-pack" should be "hunt-and-peck."

------
jbmorgado
For me isn't just the fact that using the keyboard is faster to carry out a
specific task, it is also that in Vim (or most places using a good keyboard
layout) I don't have to take my fingers out of the home row and then carrying
out the next action is also faster.

------
InTempWeTrust
The problem is the whole mouse physics.. if you could look at a point and then
click.. that would be a dream.

------
jlebrech
eyetracking and AI should be able to replace the mouse.

------
plazmatic
Interesting post. Thanks!

------
LoSboccacc
depends, duh. are you typing code or are you documenting a graph?

