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.


This is a companion discussion topic for the original blog entry at: http://www.codinghorror.com/blog/2008/03/revisiting-keyboard-vs-the-mouse-pt-1.html

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.

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.

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.

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.

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.

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.

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.

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.

pretty good late 2007 discussion of the Tog findings here:

http://tinyurl.com/2odgua

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 on muscular load and operators experience’, Appl. Ergonomics, 1997, 28(5-6), pag. 345-347

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.

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”.

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.

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. :wink:

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.

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.

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-472809749973displaylang=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.

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.

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.