I <3 Steve McConnell*
Coding Horror
programming and human factors
by Jeff Atwood

March 30, 2008

Revisiting "Keyboard vs. The Mouse, pt 1"

You may know Bruce Tognazzini from his days as Apple Computer employee #66, or perhaps his classic books Tog on Interface and Tog on Software Design. He's still quite relevant today; his list of the ten most persistent UI bugs is an excellent reminder that many of the biggest computer interface problems are still essentially unsolved.

But what I want to talk about today is one particular Ask Tog column from August 1989, which was republished as Chapter 6 of his book Tog on Interface. It's titled Keyboard vs. The Mouse, pt 1. It contains this quote:

We've done a cool $50 million of R & D on the Apple Human Interface. We discovered, among other things, two pertinent facts:

  • Test subjects consistently report that keyboarding is faster than mousing.
  • The stopwatch consistently proves mousing is faster than keyboarding.

This contradiction between user-experience and reality apparently forms the basis for many user/developers' belief that the keyboard is faster.

Let's assume that we're typing some text into a document of some kind, and we wish to save the document we're working on. (I could argue that the user should never have to explicitly save anything, but humor me.) If it seems ridiculous that the mouse method:

  1. Take your right hand off the keyboard
  2. Place your right hand on the mouse
  3. Mouse over to the File menu
  4. Click File
  5. Click Save
  6. Place your right hand back on the keyboard

Could be measurably faster than the keyboard method:

  1. Use your left hand to press Control+S

I assure you that you are not alone. Please defer all your righteous indignation for just a moment.

First, understand that this is a very old quote. In 1989, the current desktop operating systems were Windows 2.0, DOS 4.0, and Mac System 6. The "people new to the mouse" Tog refers to were keyboard holdouts, convinced that the mouse was nothing more than a giant, gimmicky waste of time. I don't think you'll find many users like that around today. Furthermore, I doubt Tog envisioned today's world of main menus with literally thousands of commands, a menu tree -- no, a menu forest -- so dense that search or some other alternate UI metaphor is the only rational way to navigate it all.

This ancient quote is invariably trotted out during any discussion of keyboard shortcuts, and always for the wrong reasons. The first paragraph is all most people read, so they misunderstand the full meaning. It helps to read the entire column. Tog explains keyboard shortcuts the way modern users understand them just a few short paragraphs later:

And, in fact, I find myself on the opposite side in at least one instance, namely editing. By using Command X, C, and V, the user can select with one hand and act with the other. Two-handed input. Two-handed input can result in solid productivity gains (Buxton 1986).

I don't think anyone would argue that learning keyboard shortcuts is faster than using the mouse to navigate and learn a program. Clearly it isn't -- it's quite painful, as anyone who has ever been stranded at a Unix command prompt can probably tell you.

However, as Tog himself notes, when the keyboard shortcut is already memorized and well understood, it's a clear productivity win.

I've long been an advocate of two-fisted computing -- using both your keyboard and your mouse to the fullest. That's what keyboard shortcuts are to me. I'm not sure why this always has to be spun as a cage match between the keyboard and the mouse. Keyboard shortcuts don't replace my mousing; they complement it.

In my experience, there's absolutely no question that judicious use of a few keyboard shortcuts will make you faster and more productive. But you don't have to take it from me. Just Ask Tog.

[advertisement] Don't denormalize your data just to write reports! Data Dynamics Reports can use your existing data relationships when creating reports.

Posted by Jeff Atwood    View blog reactions

 

« Just a Little Bit of Software History Repeating Let That Be a Lesson To You, Son: Never Upgrade. »

 

Comments

Keyboard shortcuts and equivalents are essential. A user should be able to access ALL of an app's functions using the keyboard alone--if only for the sake of those users who are physically unable to use a mouse.

Plus, keyboard shortcuts can be scripted using a macro recorder.

ChrisL on March 31, 2008 04:34 AM

pretty good late 2007 discussion of the Tog findings here:

http://tinyurl.com/2odgua

Jeff Atwood on March 31, 2008 04:37 AM

In this day and age of Vista, Office 2007 and OSX there's no emphasis on the keyboard shortcuts. Most of the time, there not even shown unless you hold down the Alt button for a while.

I'm a big fan of keyboard shortcuts, but it would be nice for software manufacturers to make them easier to learn.

Joel on March 31, 2008 04:38 AM

I used to believe that using the mouse for everything is the 'right way' and never fully understood people who exlusively used the command line and keyboard shortcuts.

But after spending some time learning VI and the Linux command line (which I admit wasn't easy) I was truly convinced of the productivity gains. I now make it a habit to learn the keyboard shortcuts of new programs I'm using.

The problem with Unix and the like in my opinion is inconsistency. If all Unix applications had the same shortcuts and if command line switches had the same meaning for every command, the learning curve would be much less steeper and the keyboard would have a bigger contribution to user's productivity since the shortcuts would be "...already memorized and well understood".

Mohamed Samy on March 31, 2008 04:39 AM

I'm left-handed and use my left hand to control the mouse.

When I choose to save a file using CTRL+S, I move my left hand from the mouse to the keyboard and back again. For applications that provide a 'save file' icon (as opposed to selecting File > Save), the time required for both the keyboard and mouse methods can often appear to be an even match.

It would be interesting to hear the thoughts of other left-handed people out there and how their experiences differ from the right-handed majority.

Jon Cram on March 31, 2008 04:42 AM

My main bias on the mouse/keyboard issue is that I’m a laptop user, so I’ve got a trackpad, not a mouse. Trackpads, at least to me, are noticeably more awkward to use that a mouse, so I’ve got a big bias towards the keyboard.

Paul D. Waite on March 31, 2008 04:57 AM

Those who prefer keyboards over mice deserve neither. Different input devices for different folks (and tasks). Three input devices can keep a secret if two of them are a mouse and a keyboard. And other butchered quotes and bad puns. ;-)

Shmork on March 31, 2008 05:08 AM

I totally agree with you on this. This isn't an either-or thing, but using both together (and designing programms for this) is the way to go.

I think this is also an issue with the upcoming (multi) touch panels (in mobile devices, tables or walls). I don't think everything will be usable only by using a touch panel. Entering text is still more comfortable with a keyboard and when it comes to precision stuff a mouse or even better a pen (which could be combined with the touch panel) is way better.

The same applies probably for speech recognition. It surely can be useful, but in some situations it would be better if I could still just type a command on a keyboard or click somewhere with a mouse.

Why focusing on one interface, when you can have so many?

Simon on March 31, 2008 05:16 AM

I'll make a specific claim-- for -repetitive- tasks, keyboarding is vastly superior to mousing-- up to a point.

There's a scaling thing going on here-- to do something once, use a mouse. To do something 20 times, use a keyboard shortcut. To do something 200 times, use a script. To do something 20,000 times-- well, um, send an email to the application developer and plead your case.

MattF on March 31, 2008 05:24 AM

This is all about perspective. If one wanted to side with the mouse users, the list could have been re-written:
1 - Take your right hand off the mouse
2 - Take your left hand off your chin
3 - Press and hold ALT
4 - Press S
5 - Release S
6 - Put your hight hand back on the mouse
7 - Put you left hand back on your chin

Versus

1 - Click the floppy disk icon on the toolbar

For the record, I'm constantly trying to get better with keyboard usage.

Sergio Pereira on March 31, 2008 05:32 AM

I am too old for this, but for the young kids coding in C#, there is a nice Visual C# 2008 Keybinding Reference Poster:
http://www.microsoft.com/downloads/details.aspx?familyid=e5f902a8-5bb5-4cc6-907e-472809749973&displaylang=en
that will dramatically improve your coding productivity with some +90 default keybindings.

How do I know? I watched one of my team programmers literally code circles around me (that’s you Ciaran!) since he took the time to learn the keybindings.

Mitch Barnett on March 31, 2008 05:37 AM

I think it is very subjective to the user past experience with the interface beeing tested, u can't really measure this, each user is faster with the UI he is used.

i personaly for develping use VIM, and for me the keyboard only interface it offers is way more faster then anything else, i can't stand it when sometimes i have to use the mouse with my left hand.

But i admit it, there are developers who write code faster when they can acces difren't commands with the mouse.

Florin on March 31, 2008 06:08 AM

--This is all about perspective. If one wanted to side with the mouse users, the list could have been re-written:
--1 - Take your right hand off the mouse
--2 - Take your left hand off your chin
--3 - Press and hold ALT
--4 - Press S
--5 - Release S
--6 - Put your hight hand back on the mouse
--7 - Put you left hand back on your chin

-- I love this, it makes me feel so guilty!

eryn on March 31, 2008 06:20 AM

And yet, I think (no, I fervently hope) that both are doomed to die because both (keyboard and mouse) are inherently un-ergonomic. The mouse as a pointing device is extremely unprecise, both devices are slow, get dirty and literally destroy your wrists.

There's so much potential for improvement and so slow progress, I have to admit disappointment. The possibilities are endless and very far from mere fiction (although that's where they come from, for the most part).

Konrad on March 31, 2008 06:31 AM

I like to keyboard & mouse, but it always feels awkward to ctrl-o with your left hand.

Joe Beam on March 31, 2008 06:44 AM

It's a good thing I'm left-handed, but mouse with my right hand.

I wish someone could conceive a one-handed interface for a keyboard. I'm working on one for myself at the moment; the hard part is finding a keyboard that might be small enough for the purpose. The ASUS Eee keyboard looks like a potential contender.

After that, is learning to type with one hand. And then typing and mousing at the same time...

kureshii on March 31, 2008 06:49 AM

I'm a left-hander but like with everything in this world i've adapted to using my right-hand for the mouse because it's far too annoying to keep moving the mouse over when using different computers...

Gordon on March 31, 2008 06:52 AM

--In my experience, there's absolutely no question that judicious use of a few keyboard shortcuts will make you faster and more productive.

Why do you trust your experience? Given the cognitive amnesia Tog describes, you need to have had a third party timing your actions for keyboard vs mouse. Have you ever done so?

Adrian on March 31, 2008 07:04 AM

Jeff,

You make it sound as if the later part of the essay completely contradicts the first paragraph that you quoted. But all he says is that Ctrl-C and Ctrl-V are an exception, because you can use both the keyboard and the mouse at the same time. That hardly means that "modern" keyboard shortcuts aren't bound by his claim.

You're right that there is a handful of frequently used shortcuts that are undoubtedly faster than using the mouse. And I agree, it's not a cage-match between the keyboard and the mouse.

The link you posted in the comments is also a very valid criticism of the Tog quote -- where are the results? What was the method? The quote, on its own, is probably past its best-before date.

But I don't think the conclusion of the article is necessarily that "using the mouse is ALWAYS faster than using the keyboard." The takeaway is that something that *feels* faster is not necessarily empirically faster. In my article on multiple-monitor productivity (http://dubroy.com/blog/2008/03/28/the-real-reason-you-want-a-multi-monitor-setup/) that you commented on, my point was that there is a different between a perceived productivity gain and a real one.

Patrick Dubroy on March 31, 2008 07:14 AM

[quote]"I wish someone could conceive a one-handed interface for a keyboard."[/quote]

http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard

anon on March 31, 2008 07:22 AM

@Sergio

You just made my day. As I was sitting here left hand on chin, scrolling through the comments (right hand on mouse wheel) and read yours...

Too bad I had to take my hands off the mouse and chin to type this response...

Wayne on March 31, 2008 07:48 AM

I think it depends on the application. Video editing and graphics software have little use for keyboards while word processor's and editor's have little need for a mouse.

I would argue that both mice and keyboards are dinosaurs in this day and age anyhow.

Why can't we replace the mouse with an eye interface where we could just look at the spot and use speech-to-text technologies to input keystrokes?

David E. on March 31, 2008 07:55 AM

My company has upgraded everyone to MS-Office 2007, and I'm sure in some context, the ribbon bar is 'useful', but I can spend minutes looking for what I want.

As for keyboard shortcuts, using the old 2003 shortcuts is frustrating because I look at what's going on the screen as I type them: they work, but it's thoroughly confusing unless I just feel the force and blindly use the old key strokes.

Jamie on March 31, 2008 07:59 AM

There hasn't been REAL software for writers since WordPerfect; and WP was a comedown from WordStar. I became highly proficient in WS and WP, and I could run circles around mousy-cut-and-pasters. Don't get me started. Word in all its varieties plain sucks - starting with the idiotic UI choices that permeate the program, e.g., entering text constantly at the bottom of the screen. DUH!!

runbei on March 31, 2008 08:05 AM

David,

I don't think that video or graphics software have litte use for keyboards. Whenever I use Photoshop, GIMP, Flash or Maya, I wouldn't be very productive without a keyboard. Especially Maya (one hand is always at the keyboard for switching tools) and Flash/Photoshop (just the spacebar alone is quite useful).

Of course entering/editing text is the domain of the keyboard, it was invented for exactly that :)

As I already wrote in another comment, I don't think that the mouse or the keyboard will get replaced soon. I think the thing with looking at a spot instead using a mouse is pretty much useless, because I am not always looking exactly where I point with my mouse and activating something would become pretty complicated. And entering text by speech, I don't know if I want to talk all day long with my computer. Just thinking about programming... :)

Simon on March 31, 2008 08:10 AM

"Why can't we replace the mouse with an eye interface where we could just look at the spot and use speech-to-text technologies to input keystrokes?"

Eye following technology exists, now but how do you click?
For imprecise input a mouse still is best, touch screens suffer from GorillaArm syndrome and are not very precise, for precise input the best currently are Graphics tablets

Speech-to-text is not practical in a busy office the noise levels would be unbearable, and differentiating between speech to be entered ,commands, and speech to be ignored is cumbersome at best ...typing is still the best of a set of bad choices

But Mouse vs Keyboard is wrong the right tool for the right job is the correct answer, mix and match as appropriate ...

Jaster on March 31, 2008 08:39 AM

* Test subjects consistently report that keyboarding is faster than mousing.
* The stopwatch consistently proves mousing is faster than keyboarding.

Depends what you are doing .... try entering text with a mouse, then try resizing a picture to an asthetically pleasing size with the keyboard, then try selecting a random collection of files from a folder and copying then to another (best done with both mouse and keyboard together...)

Jaster on March 31, 2008 08:42 AM

Yeah, WordStar was great: you had no idea what your document looked like until you printed it. Stupid WYSIWYG is such a productivity-killer.

Rhywun on March 31, 2008 08:45 AM

I'm not sure if this was mentioned in the comments, to many to read through already!

I wouldn't call using the mouse over the keyboard for speed as being completely ridiculous. You are assuming that the user knows all the keyboard mnemonics over the menu/toolbar items. If they don't know the keyboard mnemonics or if they don't fully remember them, they have to think about if they know the mnemonics, then if they do they can hit it, if not, they then have to take the "slower" way and use the mouse.

Over all, it might take as long if not longer to try to use the keyboard over the mouse. It really just depends on the user.

I think it's one of the biggest reasons Microsoft put the "Ribbon" interface into Office. They determined that it would be faster and easier for the user to have the must popular editor options in front of them in a toolbar type interface over Menus and a menubar.

Just a thought...

Dave M. on March 31, 2008 08:46 AM

Imagine first-person-shooters with eye-tracking technology instead the mouse. Aiming would become a non-issue... sweet!

But as the other poster asked - how would you click?

KG on March 31, 2008 08:58 AM

"Eye control" is never going to happen, because nobody can control their eyes as steadily as a mouse. Eyes wander erratically all over the place; imagine watching your cursor jumping around the screen all day.

PS. I agree with the consensus here. Each input method has its uses, and using them wisely together is very productive. Which is why I am constantly amazed to see co-workers, programmers like myself, doing something as brain-dead as using the "Edit|Paste" menu in the middle of typing, or clicking to get from one text box to the next.

Rhywun on March 31, 2008 08:59 AM

I am also of the ‘two-fisted’ school and it constantly amazes me that is not. Some functions (particularly in the learning phase) are best moused; others (particularly once the program is grokked) cry out to be keyboarded. Jobs, Gates, somebody at Xerox Park – whomever crafted the first ‘ZXCV’ string created a beautiful thing.

Bill

Bill on March 31, 2008 09:30 AM

I don't use mice except occasionally for gaming, I'm all about the Trackpoint. No idea if it's really faster but I like not moving my hands off the keyboard. I use it on both my laptops and desktops. It's also nice just using your lap and not needing a flat surface.

Morgan on March 31, 2008 09:58 AM

What would be interesting is to see how the size of the screen impacts the mousing time. This research definitely is out of date and should be redone. There are a lot of variables to control for: screen size, application familiarity, menu design (eg, ribbons), left vs right handed, task (word processing, programming, photo editing, etc)

That decision time Tog referred to? I don't think "Copy, what do I do? Oh yeah, Control-C" - it is just control-c.

I liked the idea of progression of scale from MattF - that seems right to me.

PhilS on March 31, 2008 10:00 AM

My software is icon/graphical in nature. 90% of my coding is mouse intensive. I don't mind. Mouse in one hand, cup of coffee in the other.

PaulG. on March 31, 2008 10:19 AM

Hey Sergio you're absolutely right! I happened to have my hand on my chin just as I read your post!

I find that when I'm browsing through code, I'm driving with one hand only...if I have to reach from my chin to touch my keyboard, it's a chore :)

Likewise when coding or typing for having to use the mouse!

kashif

Kashif Shaikh on March 31, 2008 10:38 AM

I am curious if anyone has experienced greater productivity using mouse gestures. I haven't delved into too much myself, but squiggling an S with the mouse could be just as fast as Control+S.

Josh on March 31, 2008 10:41 AM

The problem with shortcuts is just as with mouse buttons, there are too many of them. I use many different applications, platforms, etc. when coding in Visual Studio, for example, I certainly know CTRL-S saves, but I often find I don't want to save. I want "Save All" and for that I click the little button in the toolbar with the mouse.

Honestly, that last time I really knew a whole app's bindings was DOS Wordperfect and that was due to a long time with the function key template over the keyboard. Most apps, however, only need a few. One can go many years of coding in emacs only knowing "ctrl-x, ctrl-c"

Neal on March 31, 2008 10:48 AM

I have done the experiment a few times this week. Unplugging my mouse for an hour or more, and trying to survive.

Nicolas on March 31, 2008 10:50 AM

non issue, who cares as a developer do *both* keyboard shortcuts, preferably customisable (but with sensible/standard defaults) and a good GUI for the mouse to play in.

let your user make the choice which is better *for them*

keyboard shortcuts are nice, I use them for programs I use a lot (where it is worth learning them) for other stuff I use the mouse.

wish OS X would pinch the 'hold alt key down to drive the menu' method, there is something i'm sure but thats easy

claire rand on March 31, 2008 10:57 AM

I've gone without a mouse before too. I have a wireless mouse and keyboard and when the batteries go dead in the mouse I try to drudge around with the keyboard which usually results in getting up quickly to swap the batteries out (and yes they are rechargeable).

Brian on March 31, 2008 10:59 AM

This is reason number one that I give to myself for not enabling "full" keyboard control navigation on OS X -- I only use text field switching. This forces me to use both hands and, I feel, has made me slightly faster; I don't try to do with the keyboard what I can usually do faster with the mouse, and this makes using the mouse mandatory in most of these situation.

(The second reason is, it's not on by default and I need to test apps in the default used-by-most-users configuration for obvious reasons.)

millenomi on March 31, 2008 11:08 AM

One other interesting aspect would be to look at the effect of different keyboard layouts. For instance, ZXCV are all nicely placed for QWERTY, but with Dvorak, they are really scattered. (Z is on the / key, which is nice because it's just the mirror image. X is on the B key, which isn't too bad. C is on the I key, which can be a bit awkward to hit for a while. V is on the . key, which is usually fine, but in some programs is very annoying: right next to it is W (on the , key), which means it's easy to hit ctrl-W (close window/tab) when you want to hit ctrl-V.) Other programs are designed for ease of use with QWERTY and are worse with Dvorak.

I love the Dvorak layout and don't regret it in the least, but it can sometimes be annoying. Some systems have a layout that normally works like Dvorak but switches to QWERTY when ctrl/apple is held down, but this seems like it'd just be confusing.


@Josh: "I am curious if anyone has experienced greater productivity using mouse gestures. I haven't delved into too much myself, but squiggling an S with the mouse could be just as fast as Control+S."

Depends on how good the gesture system is. Doing something as intricate as an 'S' would, I think, be quite difficult unless the system allowed a lot of error. (Disclaimer: I'm left-handed most of the time, but mouse with my right hand. I'm less precise than some people are.) I used gestures in Firefox for a while. I found forward and backward indispensable (click, drag left/right, release); at times, I would switch into IE and try to do the same and have it not work. It's like the mouse wheel, when you would sit down at a computer that didn't have one and instinctively try to scroll with it anyway, but rather less strong. I would also often use the new tab gesture (click, drag up, release), but also often not; I usually would move my hands to the keyboard to enter the URL anyway, so would usually just do ctrl-T. I would sometimes use the close-tab gesture (click, drag right, left, right, release), but I found that even something that complex I sometimes got wrong, and it was usually just faster to hit ctrl-F4, at least if my hand was on the keyboard.


@Nicolas: "I have done the experiment a few times this week. Unplugging my mouse for an hour or more, and trying to survive."

My mouse does that for me every so often when I don't pay enough attention to the batter indicator. Usually it happens at inopportune times.

Evan on March 31, 2008 11:09 AM

I use the IBM ThinkPad keyboard with UltraNav, or whatever the little pin is called, so I don't have to lift my hand to use the "mouse". Ownez. And it's small to.

Peter H on March 31, 2008 11:12 AM

@Sergio

QUOTE
This is all about perspective. If one wanted to side with the mouse users, the list could have been re-written:
1 - Take your right hand off the mouse
2 - Take your left hand off your chin
3 - Press and hold ALT
4 - Press S
5 - Release S
6 - Put your hight hand back on the mouse
7 - Put you left hand back on your chin

Versus

1 - Click the floppy disk icon on the toolbar
/QUOTE

----

Ok first I laughed out loud because I was in fact sitting there reading this post with my chin propped on my left hand. But steps 1 and 6 are not needed since you can do all of this with your left hand.

But to get to the point of the article. First level keyboard navigation and mouse navigation are equivalent in today's applications. It's the repetitive mind numbing stuff that is multiple levels down that requires keyboard shortcuts.

And not that ALT hotkey stuff. Rule of them, if I might do it more then 2 times repeatedly, then put in a keyboard shortcut.

Tim on March 31, 2008 11:15 AM

Well this keyboard vs mouse thing is not an issue if you own Thinkpad with "red thing". The best thing about it, that you don't have to move your hand, you could just move one finger. : )

Dmitry on March 31, 2008 11:16 AM

This is a dumb argument, keyboard vs mouse. It varies completely on the situation. Sure, when saving a document, ctrl-s is much faster, but as someone pointed out, the save toolbar button makes it almost trivial. Then there are things like browsing the web. Have you ever tried with out a mouse? Sure it's possible, tab, tab, tab, tab. Ya someone could write a clever Firefox plugin to make it better, but why? Mice and keyboards complement each other; the trick is to know how to leverage both.

Jesse on March 31, 2008 11:16 AM

"*stranded*" at the (Unix) command prompt?? I _prefer_ to be there, most of the time...

OK, I have been, at times, but I've also been "*stranded*" without a mouse. Which is why I believe both (mouse && keyboarding skills) are important. Keyboarding will always be my katana, but no warrior should be without the long and the short. Which is which, is of course, a matter of personal taste.

Tarkin on March 31, 2008 11:17 AM

Advantage of the mouse: the computer can track where you're thinking of clicking. Very few apps yet make use of this, instead being blind to what precedes the click.

But what happens when we have touch interfaces? Assuming they make the interface click somehow when you press on it, they will replace the mouse/keyboard/screen.

I'm waiting for something like half an AlphaGrip for my left hand, complete with easy Ctrl-ZXCV access, and perhaps some modified mouse in my right - maybe some buttons around a normal mouse. I think that's the answer - combine the two, then the point will become moot.

Phil H on March 31, 2008 11:38 AM

It's easy: Old coders can't use a mouse, so for them the keyboard is always faster. They even look at the mouse before moving it !

But I don't know a single programmer from my generation that's not also a gamer.

And we are very, VERY proficient with the mouse.

Selecting, copying and moving text is always faster with the mouse.

Some other things are faster with the keyboard.

But don't listen only to old geezers that have only used Emacs or Vi or some similar ancient software.

Shorel on March 31, 2008 11:44 AM

The keyboard is faster for anyone who spends time learning it. Just learning to cut, copy and paste with the shortcuts is faster than using the mouse. You can be as proficient with the mouse as you want but you can't make the lag time that's incurred by moving your hand from the keyboard to mouse--and back again--disappear.

And it's not just "old coders" who realize this. I was still in diapers when RMS started GNU Emacs but it's still a much faster way to edit than anything I've ever seen. I was truly in awe when I saw an emacs veteran editing and moving my Java code around with a flurry of keystrokes. It was then that I knew that no amount of two-fisting typing would match that speed.

I may still be an emacs novice but I already KNOW that CTRL+n/CTRL+v are faster ways to scroll down than moving your hand to the mouse wheel or pressing Page Down.

Cristian on March 31, 2008 12:10 PM

Application software could learn a lot from games. Mouse to aim (select), single key short-cuts (not ctrl+alt+whatever finger-yoga), enter to start typing.

As any vi-using old fart will tell you, a modal interface beats a lowest-common denominator unimodal interface any time. It's the way the brain works, as natural as breathing in before speaking.

Also: the Microsoft keyboard on which I am typing this has 66 keys outside the core alphanumerical+punctuation block. None of those keys represent cut, copy, paste, bold, italics, context assist, forward, back, format painter, new tab, preferences: few of them are any operation you might want to perform as often as once every 6 months.

soru on March 31, 2008 12:31 PM

I am a big keyboard fan (mostly because my Linux boxes at home don't have a GUI or even a mouse on them) but I can see times when the mouse is much faster than the keyboard, particularly when navigating between windows.

I once had to write an application where one of the requirements was that the user be able to use the program with their left hand on the left side of an ergonomic keyboard (I even had a specific model to work with) while keeping their right hand on a trackball mouse (again, specific model, and there was a very good reason for the trackball mouse being a requirement that was specific to this app). I had a bit of an interesting time with this, but ultimately I was able to make it work. I think it would be a good idea for more people to just keep in mind the most common tasks that someone is going to preform in your app (copy, paste, save, quit, open, etc.) and make them easy to type with the left hand on the keyboard and the right hand on the mouse. If I could do that at age 19, so can you.

Jeff Tucker on March 31, 2008 01:01 PM

kureshii: Check out http://www.frogpad.com/

This is a keyboard designed for one handed use. I've never tried it out, but it looks interesting.

Tim on March 31, 2008 01:02 PM

Hi Jeff,

I am a big fan of your blog and I've been reading almost all of your posts for the last two years. Maybe I am spoiled by your great writings over that long period, but I can't help noticing that the quality of your posts seems to deteriorate lately. Most of the topics you wrote about within the last weeks were the subject of some earlier post and I could hardly find any original material. Why don't you turn back to the roots and write some more about code-related or software design issues.

Manu on March 31, 2008 02:05 PM

I must admit to being something of a keyboard fanatic, to a point.

I am what one would consider a "power user"--and I must say that having keyboard shortcuts is a great benefit to me. I use them constantly; and even with one hand on the mouse I have no trouble reaching all of them. For ctrl-o, I simply use the ctrl key on the right side of the keyboard.

Simple shortcuts are so much a part of my computing experience that if a program doesn't implement them, I will not purchase or use it. I don't even THINK "ctrl-n" anymore, I just think "new document"--and that's how I create one. Using the mouse, I have to use this relatively imprecise tool to navigate to the upper left of the window (which, depending on my window layout, may or may not be at the upper left of the monitor), identify, target, and click on a New Document button. I can do either in well under 2 seconds, but ctrl-n takes a fraction of a second--and since the keyboard shortcut is INSTINCTUAL, it doesn't take my mind off the topic at hand. I would argue that in my case, using the mouse DOES.

My mother, however, certainly doesn't know all the keyboard shortcuts--and if an icon isn't clearly labeled, she probably won't know what it does. For her, mousing over the icons, watching the tooltip text, is the best way to locate a tool.

In short, I think both are necessary, and I hope people don't omit either from their user interfaces.

WesleyC on March 31, 2008 02:14 PM

I love keyboard shortcuts and use them all the time. Another efficiency I have found is to swap my mouse to my left hand (I'm right handed) which frees up my right hand to jot stuff down (when I have to) in the position where the mouse would normally be for a right handed person.

Guy on March 31, 2008 02:29 PM

Well I love my keyboard shortcuts also. And somethings just can not be done with the mouse such as the following command "xcopy /d /s /y /c *.* J:" which would copy all newer/non-existent files from the current drive to another. But of course there are millions of examples that we could use.

Paul Barrett on March 31, 2008 03:33 PM

Keyboard is way faster in many cases; but using keyboard shortcuts is still the luxury of "advanced users."
I don't know if there's any study about the fact that many users consider memorizing and using keyboard shortcuts as a very complex task. I think this matter requires an entire blog post, Jeff.

Bahador on March 31, 2008 04:21 PM

TRACKPOINT

IBM studies conducted by Selker found that the act of removing your hand from the keyboard, reaching for a mouse, and replacing the hand on the keyboard takes approximately 1.75 seconds. If you type 60 wpm, that can equal nearly two lost words, plus in that time you can lose your train of thought. Almost all this time can be saved each time the trackpoint is used to either move the pointer or make a selection (click or double-click). The combination of the buttons and the positioning knob also enable drag and drop functions to be performed easily as well.

IBM's research also found that people can get up to 20 percent more work accomplished using the trackpoint instead of a mouse, especially where the application involves a mix of typing and pointing activities such as with word processing, spreadsheets, and other typical office applications. In usability tests with the Trackpoint III, IBM gave a number of them to desktop computer users, along with a mouse. After two weeks, 80 percent of the users had unplugged their mice and switched solely to the trackpoint device. Selker is convinced (as am I) that the trackpoint is the best pointing solution for both laptop and desktop systems as well.

Another feature of the trackpoint is that a mouse can be connected to the system to allow for dual-pointer use. In this case, a single mouse pointer would still be on the screen; however, both the Trackpoint and the simultaneously connected mouse could move the pointer. This allows not only the use of both devices by a single person, but in fact two people can use both the Trackpoint and the mouse simultaneously to move the pointer on the screen. The first pointing device that moves takes precedence and retains control over the mouse pointer on the screen until it completes a movement action. The second pointing device is automatically locked out until the primary device is stationary. This enables both devices to be used, but prevents each one from interfering with the other.

source: http://lib.daemon.am/Books/Upgrading_PC/ch09/ch09.htm#Heading12

see also:
http://abstractfactory.blogspot.com/2003_12_21_archive.html
http://www.petergolden.com/Articles/ThinkPad-1(EB-PAG).htm


Fernstrom E, Ericson MO, ‘Computer mouse or trackpoint, effects o­n muscular load and operators experience’, Appl. Ergonomics, 1997, 28(5-6), pag. 345-347

DAKra on March 31, 2008 04:37 PM

RE: Eye following technology exists, now but how do you click?

By blinking, or double blinking perhaps...

Shift key would work too.

Just thinking outside the box here, or if you were to use a product like Microsoft Surface you could think on top of the box.

Davide on March 31, 2008 06:17 PM

As one of them "gamer" programmers (17 years old, been coding and gaming for almost as long as I can remember) I have found its a hybrid of both. I am much faster with most things on the keyboard. On my day to day stuff I almost never touch the mouse. In firefox I use the arrow keys. In Word, Outlook, and OneNote which make up most of my time, being a student, I rely on shortcuts. But then if I switch to 3D modeling my hand moves over to my trackball.

Disclaimer: I am not a normal user. I type on an old Microsoft Natural keyboard, that has been spray painted black and blue, and use a trackball instead of a mouse. For new users a mouse is probably easier, but for coding, and to some degree office tasks the keyboard for me is king.

mufasa on March 31, 2008 06:24 PM

Hey, try using your mouse with your non-writing hand. It's hugely efficient! I lucked into this configuration by being a left-hander in a right-handed world, and I think it's made me a better person.

Steve on March 31, 2008 07:25 PM

Hi Jeff,

I am a linux user and do most work on my terminal console. As for me, mouse and keyboard can be both increase productivity if the user know how to fully utilize both tools. Sometimes, keyboarding is way much faster than mousing but sometimes mousing is also faster. Depends on which task you're doing.

Anyway, I prefer putting my left hand on my chin while my right hand scrolling the mouse, browsing and reading your blog... :P

ApOgEE on March 31, 2008 07:26 PM

From years of working on keyboards and graphics, I know from experience you should use all three tools: your keyboard, your mouse, and your BRAIN.

I quite agree wit the original post, why does everything have to be conceived as a sports match with only one winner? For some functions in some programs a keyboard shortcut is faster, for other functions a mouse. Why does there have to be a winner? I blame the whole discussion on too much sports on television.

Carol on March 31, 2008 07:49 PM

Please tell me this new skin is an April fool's joke?

The Don on April 1, 2008 01:46 AM

Jeff - love the new look!

Just wanted to chime-in with the other lefties - I'm a left-handed person who got used to using the mouse in his right hand, simply because of the amount of time I spent working with other people/at other people's desks, etc. I don't switch around the buttons either, something I've seen many left handed people do.

It's strange how the computer world deals with lefties, because in my experience there is a much higher proportion of software developers and graphic designers who are left-handed than in the more general trades across the population. I would guess it's closer to 1 in 4, not 1 in 9, and so you'd think more software would be designed with attention to the fact that people have different dominant hands.

Rob Uttley on April 1, 2008 02:01 AM

Just a remark, Jeff - the title 'hoding horror' wonderfully carved in ASCII at the top of the page gets uglishly underlined when you hover mouse over it.

But it's a good blog anyway:)

Tomasz on April 1, 2008 03:39 AM

I like the site redesign ;)

Ross Anderson on April 1, 2008 04:09 AM

April 1st, very funny!!! I've got a headache, thanks Jeff ;)

Ash on April 1, 2008 04:10 AM

Me LIKE green screen look! April fool or no, it's lurvely.

David Dawkins on April 1, 2008 05:29 AM

Gahhh, i so fell for it. Nicely done!

Jazz on April 1, 2008 05:40 AM

"Eye following but how do you click?
By blinking, or double blinking perhaps..."

Try not clicking on something every two to ten seconds (which is the average blink rate) .. oh and make sure you are not distracted when you do it ...

Jaster on April 1, 2008 07:12 AM

Two fisted computing!
The best complex application that takes this to heart is Blender 3D. Never has it been more painful to learn a program, but most rewarding afterwords. (The two-fisted way, isn't that the wrong way? Yes, but faster)

mempko on April 1, 2008 08:36 AM

I typed "orange" cos I knew it was there, not because I could see it.

The inserted replies are completely unreadable.

Happy Spaghetti Tree Day!

Tomato Queen on April 1, 2008 01:49 PM

I'm right-handed but use the mouse left-handed. That way it is easy
to write down things while browsing documents or you can answer
a phone call (headset), then surf the web (boring phone call) and
still write down a "calling memo".

I know two types of work:
1) two-handed on the keyboard (Unix Admin) and I really
hate to take my hands of the keyboard to do something else.
(these are the hours I should really get paid for)
2) One-handed on the mouse (chin rests in second hand).
(Check out: from the way people do one-handed computing you
can tell if they are surfing the web for fun or do some
real work - really true!)

And then I know mode no. 3, which I use at home only:
The famous WSAD-mouse ego-shooter mode.

while surfing the web and an

Erik on April 1, 2008 02:23 PM

Hmmm. I'm suprised that no one has brought up the KLM-GOMS model. Determining the time in seconds for a practiced user to complete a sequence of operators (using keyboard, or mouse or both) in a given interface has been possible for 10ish years. You can simply plug in research data for each operation (move hands to mouse, click button, release button, move mouse, etc) and get a measurement for the time it takes to complete the sequence.
http://en.wikipedia.org/wiki/KLM_(human-computer_interaction)

If you wanted to get really precise about it, you could apply Fitt's in your KLM-GOMS analysis to figure out exactly how long it takes to move the mouse to a control (given both the size of the control and distace away).

http://en.wikipedia.org/wiki/Fitts'_law

ben on April 1, 2008 04:09 PM

I think people are habituated of using both mouse as well as keyboard. One uses mouse or keyboard at the required place according to the priority to minimize time.to get the work done.

Leo F. Swiontek on April 2, 2008 12:42 AM

Just like when writing code, you need to focus optimizations on things that are done the most frequently.

For example, in Photoshop, you can get *huge* productivity gains by learning the keyboard shortcuts for switching tools instead of clicking on the tool tray. M is for marquee, B is for brush, T is for text, etc. To grab and move the image, you can use the space bar (instead of scrolling around with the scroll bars. The arrow keys can be used for more fine-tuned movement (because who has pixel-precise motor control of their mouse hand?)

Less commonly used operations have slightly more complex keyboard shortcuts. For example, merging a layer down is Ctrl+E.

But operations such as applying a Gaussian Blur to the current selection do not have a keyboard shortcut. It just doesn't meet the common usage bar that justifies a shortcut, compared to the other operations. Given the number of filters available, you wouldn't get any significant productivity gains by providing shortcuts, because the number of filters available is going to be well beyond most people's ability to memorize. Once you have to do something like Ctrl+Alt+Shift+G for a blur effect, and remember four-key combinations for 50+ filters, it becomes much easier to just use your mouse to pick it from a menu.

What about people who want to apply Gaussian blurs all the time? Photoshop does provide a "last filter" shortcut, Ctrl+F, so you only need to pick a filter with the mouse when you're going to be using a new filter.

Jake Cohen on April 2, 2008 03:18 PM

QUOTE
However, as Tog himself notes, when the keyboard shortcut is already memorized and well understood, it's a clear productivity win.
/QUOTE

I don't see Tog saying that at all. The whole article is very damning of keyboard users, with only one exception, Control X C V, and only because those keys can be used in combination with the mouse.

QUOTE
And, in fact, I find myself on the opposite side in at least one instance, namely editing. By using Command X, C, and V, the user can select with one hand and act with the other. Two-handed input. Two-handed input can result in solid productivity gains (Buxton 1986).
/QUOTE

The 'opposite side' being the 'keyboard users who feel like they have gained two seconds over the mouse, but in fact have lost time because of amnesia' crowd.


Spending $50 million on R&D, doesn't prove that what you are saying is true.

In this case, it seems the only thing their $50 million did was prove that you can fork over $50 million and get bogus data in return.


It's thinking like this that has made so much software unusable without a mouse.

An example: switching input to different controls in web pages.

Load up imdb.com and try to use the tab key to switch to the search input box.

In IE7 it will take 29 tab presses to get there.
In Firefox, 22 tab presses.
In Opera, 2 tab presses. TWO.

Just because some action is stupidly slow to do with the keyboard only now, doesn't mean that it has to be that way.

Not that I'm an anti mouse guy, if I had $50 million that I needed to throw away, I would do a study that showed that keyboards with a good pointing stick(1) were the most efficient way to go for most things, and Doom/Skulltag are completely unplayable without a good mouse.

(1) IBM/Lenovo keyboards with the bowl tip pointing sticks, NOT the horrible Dell pointing sticks.

scythe on April 3, 2008 09:49 AM

Love the shortcuts, but me still need the mouse for fragging friends in CounterStrike.

Syahid A. on April 7, 2008 09:33 AM

I think there is no such thing as the "right" or "fastest" way to interact with a computer. It mostly depends on the kind of task you are working on, and your personal prefarences. For text centric taks, like coding or writing a letter, the keyboard would be the preferred way to interact also for commands, like saving or c&p. But I can't really image drawing apicture with my keyboard :)
And besides, if you are one of those people not able to memorize a few shortcuts... you won't have any fun with stuff like vim or wmii at all.

derhans on April 9, 2008 02:06 PM

I find this really amusing (the whole website) :-)

Keyboard v mouse? Yeah, mix and match.. Keyboards don't work if you've got shortcuts like Ctrl+Shift+Tab+SomeOtherKey..

astigmatik on April 28, 2008 04:53 AM







(hear it spoken)


(no HTML)




Content (c) 2008 Jeff Atwood. Logo image used with permission of the author. (c) 1993 Steven C. McConnell. All Rights Reserved.