a companion discussion area for blog.codinghorror.com

Going Commando - Put Down The Mouse


well, I think, that apple-study is not correct.
Imo you cannot say “Mouse Keyboard by stopwatch, discussion dead.”

At first, I think, there are applications optimized for mouse usage and there are applications optimized for keyboard usage. As everyone states, try web browsing without a mouse. sick. Or try playing quake without a mouse. Mechwarrior2 anyone?
However, take a look at those hardcore-editors. vi and emacs. Those are optimized for keyboard usage.
I use vim very much myself and I do NOT think what key I need to do stuff. I know it. I do not need seconds to find the keys to kill that line and insert another one. thats just caps-dd-i. With caps = esc. At least, iirc. Usually I just do not know what I type really, I just type what I want to be in that code. Who cares what the precise commands look like?
However, I usually have major problems with my mouse, especially if it is about text-editing and a little squiggly editors. Usually it ends up with something like “ok, selected 2 characters too many, gotta get them off, darn, one short, ok, right again, ok, have it all, ctrl-c, scroll…”.

Thus, I think there are not only keyboard-programs and mouse-programs, but also mouse-people and keyboard-people. As I said, I just know what I want and my fingers somehow tell vim what to do. Same goes for my brother, btw.
Btw: usually, vims shortcut fit my way of thinking way more than the mouse could ever do. I rather think “ok, take that 10 lines, paste them somewhere else and wrap a function around that.” (refactoring) ok? what happens? 10ddGO, type function header. done. with a mouse, Id have to select all that 10 lines, carefully watching to get that 10 lines, scroll down, paste it, remove the cursor and type. Ok, maybe that is faster, but I dont really think so.

Thus, I think, there are 2 factors always.
The user: is he a mouse-user or a keyboard-user?
The program: is it optimized for mouse-usage or keyboard-usage?

And THEN you might say:
if you put a keyboard-user into a mouse-optimized program with several half-hearted shortcuts, a mouse-user might be faster in a keyboard-optimized program with some half-hearted mouse-support.
However, an experienced keyboard-user in a keyboard-optimized program will be faster.

Just for fun:
Today, at highschool, we had to apply a quick fix to some exercise. no problem, vim it, use regex to jump to problem, kill problematic line, insert solution, write, close vim.
After that, I asked some mouse-fanatic wether my fix whould do the job and all he said was “I dunno, that file was closed again when I just realized it was open already”. :wink:


The free market’s choosing the “best” is a canard. Being charitable, the statement is a tautology; being uncharitable, it is not as universally correct as it sounds. Like any hill-climbing system that doesn’t distrust what it finds, it suffers from picking local minima – and getting stuck. QWERTY is one example.

Local minima aren’t necessarily bad, they’re just… locally minimal. Pick some other metrics (like, staying on topic, percentage of vowels on the home row, and degree of per-keypress alternation between use of left and right hand when typing English), and you may well find some other spot (probably over some enormous dirty great bump in your original graph) that minimizes them better.


Really, who cares? Even if it’s faster working without the mouse, I am more comfortable using the mouse. Who wants to go back to the days of DOS (remembering commands for performing actions)?

Now if this was advice for developers in order to test their keyboard shortcuts, that’s great. But for everybody, not going to happen. Some people don’t even know about CTRL-C for copying!!!


Alt+F, W, F? Or use the right-click equivalent menu (ctrl+f10) key.

I use that all the time. The only nuisance is the (now extremely rare) event that I am on a Win9x machine. Then I think it is ALT+F, W, W (or something like that).


How on Earth would NOT using your mouse enable you to figure out that control and enter will add www. and .com to the URL for you? I could stop using my mouse until the end of time and I would not figure out that out unless I read it somewhere.

But now that I have read it here… I’ll start using it :slight_smile:


I guess I should have researched this further. All this time, I thought I was the only one who believed using a keyboard is faster than using a mouse.

Long live vi!

Great article, I’m bookmarking it.


Honestly, I think it’s just up to the individual… There are certain shortcuts that are almost instinctive. Others feel simply unnatural to do – where I’d rather enter a Cheat Code into a game of Contra than save a couple mouse clicks in some apps…

I will admit, though, that I’ve needed to know the keyboard shortcuts in the past for troubleshooting and whatnot. Sometimes it was mandatory because a disgruntled hourly-employee had taken the mouse :wink: But for coding… eh… to each their own, I suppose.

P.S.- I couldn’t live without basic Tab+Enter control these days. I find myself loathing any interfaces that don’t support such simplicities.


@ hgs:

Both IE, Firefox and Opera support access keys (and I guess Safari and Konqueror as well). Press Shift+Esc in Opera 9 to see a list of links with access keys on a page (and then use the defined key to access them). In FF2, press Alt+Shift+key to activate the access key, in IE press Alt+key. Of course, the IE method (also in FF1.x) clashes with browser menu access, and both IE and FF don’t offer a method out-of-the-box to discover the defined access keys, so you have to rely on the page describing them. All in all this is not the most succesful accessibilty help, no matter how the W3C promotes it.


Forget controlling the cursor with eyes What we need is a focus-follows-thought option in the window manager. :slight_smile:

It’s actually not all that science fiction as it sounds, there is lot’s of work going on on brain-computer interfaces. On a rudimentary level it already works.


My best keyboard speed trick is using “alt” to highlight a drop down menu, and then press the appropriate hotkeys for the menu option I want. So saving in most apps becomes alt,F,S. It speeds up ALL KINDS of operations in almost every application out there. I get more comments of “holy crap, what did you just do?” doing this trick than anything else. Plus, it’s a sequence rather than a combo, so you don’t get “claw pain” as someone mentioned earlier.


Sometimes a mouse just won’t work.

Use a screen reader, close your eyes and you will soon feel the need to learn keyboard shortcuts. Thanks to a friend I had the opportunity to do just that. She needed to keyboard her way through documents, email as well as websites. I managed to learn a few shorts cuts from her. I believe she sees things better than most even though she has extreme vision loss. She is my inspiration.


That Dvorak keyboard layout looks pretty interesting, especially since it’s free and easy to try out.

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

As of 2005, Barbara Blackburn is the fastest typist in the world, according to The Guinness Book of World Records. Using a Dvorak Simplified Keyboard, she has maintained 150 words per minute for 50 min, 170 word/min for shorter periods of time, and has been clocked at a peak speed of 212 word/min. Blackburn failed her typing class in high school, first encountered the Dvorak layout in 1938, quickly learned to achieve very high speeds, and occasionally toured giving speed-typing demonstrations during her secretarial career.


is there an alt-d equivalent on OS X?

Don’t forget the space bar for page down while browsing, and shift - spacebar to page up


Conspiracy trivia:

Typewriter is the longest word you can spell using only the top row of a qwerty keyboard.


The alt-d equivalent on OS X is cmd-l. And for Firefox on Windows it’s ctrl-l.


The problem with the tog site is that it doesn’t list the specifics of the study, or I at least I couldn’t find them. At one point he said they compared the speed of using the cursor to change all the e’s to |'s using the keyboard and the mouse. This is a ridiculous test, because if you have an ounce of brain you would search and replace. If you do that a lot and have the shortcut well-learned enough to touch type it then using keyboard is faster, otherwise mouse over the menu. If the entire 50million dollars was spent on useless tests like this, the study is worthless.


For games and general navigation I agree, but I am absolutely certain that if anything to do with input speed is slowing down your coding, you are just not thinking enough.

Refactoring (which you should probably be spending as much time on as coding) even works better with a mouse for the most part–as does any selection-based task,

This also goes for languages that let you save a few lines of code here or there. Not that I’m in any way in favor of redundancy, I just think that using default values and skipping declarations is going in the wrong direction.

Code needs to be 100% declarative. It should set out exactly what is going on, and the flow should be obvious (as opposed to things like C++ overloaded operators). It should read more like a book than some terse summary.

Browse through Sun’s Java library classes sometime to see “Good code”–It’s written to be understandable, it’s simple and it’s very obvious what is going on. Where the code may not be obvious the comments are.


“Unfortunately, navigating through websites is nearly impossible without a mouse”

Not so! Firefox has the “find as you type” feature (renamed in current version to “search for text when I start typing”). This feature is the only reason I still use firefox: The page loads, you see a link you want to activate, just start typing the first few letters of that link. It will find and place focus on that link - now hit enter.

You can navigate rapidly through web pages this way. Don’t know what I’d do w/o it.


I had a friend, Duane, that used to call me a ‘mouse cripple’ because I couldn’t work without it.


" "It’s un-possible!“
This is the mark of distinction between real engineers and psuedo-engineers.
Real engineers rely on science, and make their decisions based on science…”

This burns me up. No, in this specific case (that Jeff described) Jeff is using common sense. You sir, are just being arrogant. A double blind peer reviewed scientific experiment is not required in all cases and may sometimes do nothing but cloud the issue and make scientists feel superior.