Mouse vs Keyboard: Is Mouse Bad for Programer?

By Xah Lee. Date: . Last updated: .

Every time i post about a mouse review, a lot programers will say mouse is inefficient, or something similar.

This is a hacker cult induced falsity.

if you consider mouse vs keyboard, they are different input devices, and for some operation, the mouse is simply the more efficient tool. There are lots different types of input devices, different ones have different input characteristics. For example:

position
When the application is complex, such as 3D modeling, a mouse becomes essential. [see Xah's Second Life Build Tutorial]

Touch screen is very intuitive, yet, for usage longer than 10 minutes, or if you require any sort of pinpoint precision, mouse, pen tablet, trackball, all are better.

Why is Mouse Important for Programer Too?

here's one tip why n-button mouse is good. Suppose you are browsing the web. Your hand is on the mouse. Now you need to go back to previous page, or switch tab, or close a tab. You need to switch your hand back to keyboard.

Or, you move mouse and aim at the tiny โจฏ icon, which can take two seconds and requires eye-balling, and require some hand coordination. But if you have n-button mouse, you can just press a thumb button by muscle memory that close current tab. [see Why You Need 10 Buttons Mouse]

You Should Never Use the Mouse, Not!

how often do you hear hackers or emacs fanatics telling you that you shouldn't use mouse?

what a idiocy!

the hacker type of coder love to chant the mantra of banning the mouse. You see it perennially, in online forums, I have a hard time to consider that a good advice. I study efficiency quite obsessively. All i can think of, of the programers (especially emacs users)'s mantra about not using mouse, is that don't use mouse to do selection, position point, copy/paste, basically something like that. But still, using mouse as part of coding activity, is essential and make things more efficient, and less Repetitive Strain Injury risk!

[see Famous Programers with Repetitive Strain Injury]

perhaps, there are 3 levels of keyboard enlightenment:

  1. beginner. Using the mouse to select text, and right click to do copy/paste. Use mouse to position cursor.
  2. {emacs, vi, Xmonad, Ratpoison, Arch Linux, Gentoo Linux, etc} fanatics. You should never use the mouse! [see Why Tiling Window Manager Sucks (xmonad, ratpoison, dwm, etc)]
  3. god. The use of mouse is indispensable for programer for the utmost efficiency. And, you also need a pen tablet for drawing, a jog wheel for editing video or sound volume, a flight stick for constant speed control!

first of all, let's get this basic point out. Browsers. The mouse, is the most efficient way to quickly place cursor in a specific position on screen. (also touch screen, pen input)

even if you are a programer, but these days you will have to spend at least 50% of your time in browser, to read docs.

Now, for example, in emacs. When you browse info doc. Sometimes you want to spend some time to casually read the emacs manual. One hand holding a cup of coffee, and the other hand on the mouse, is the most efficient way to navigate the info doc.

but mouse isn't just more efficient than keyboard in a 2D/3D environment. There are fine details. Here's one.

In coding, often you need to page up/down, or move cursor backward/forward. The nature of the keyboard input device is such that, you can either hold down a key and have it fire repeatedly rapidly in a constant rate, and can be 20 times per second. Or, manually repeatedly hit a key, at about 5 times per second.

the mouse wheel is far more efficient than any page up/down or other means by key. Because, if one consider the nature of the input, mouse wheel is such that it can generate variable speed of input signals, in 2 directions. And, this variable speed can be controlled easily in real-time. While keys such as page up/down (or other chord you use in emacs or vi), is such that either you repeat in a fixed rate, or have to press the button about at max of some 6 times per second and is extremely hard on the hand and cannot be maintained for longer duration (after a minute, your hand gets tired of repeatedly pressing a key. While with mouse wheel, it's not a problem). Also, wheel allow immediate reversal direction. With keyboard, jumping from one key to another is perhaps 10 times slower than your finger can reverse direction on wheel. And, it require much more hand coordination or energy.

so, ban your {PageUp, PageDown} keys. Ban your {Ctrl+f, Ctrl+b}, ban {Ctrl+v, Meta+v}. Instead, use wheel in combination with {Ctrl, Alt, โ– Window, โŒ˜ command} to prev/next {paragraph, code section, screen, buffers, tabs, windows, virtual screens}โ—

here's tips on using the mouse, for extreme efficiency nerds.

here's tips on choosing a mouse.