37 comments

[ 2.6 ms ] story [ 56.7 ms ] thread
Thanks, Hank, for bringing up a very important topic that we don't talk about enough.

Interestingly, of all the things that retard adoption of new technologies, I think that the mouse is still the biggest one.

I have customers with call centers and power users still on green screens and command lines. The switch to GUI has always been too expensive. When you have 4000 users, the cost of average call times going from 2 to 4 minutes adds up quickly.

Make no mistake about it, for repetitve tasks, the keyboard is always faster than the mouse. "Alt" and "Ctrl" commands are cool and geeky, but like Hank says, who can remember them all?

We need web apps with intuitive keyboard interfaces. Fkeys (they're on every keyboard) and single letter commands are easily adoptable. (Oh, you mean "C" brings up the Customer record, cool.)

The ability to do this is as old as javascript. Once we developers take the GUI pain away from the power users, the big migrations can continue.

Fkeys (they're on every keyboard) and single letter commands are easily adoptable.

I dig this one. On my mac, I always set it to let the F keys behave normally. I hit fn + an F key to change volume, etc.

I map all my f keys in emacs to something useful and save plenty of time because of it.

Keyboards aren't just about memory, they are a lot slower then the mouse if you don't have almost instinctive muscle memory. If you have to think what the key combo is, use the mouse.

Every so often I'll start thinking that maybe a keyboard + mouse combo is the fastest most efficient way to go... on Windows.

And then I see a windows developer for whom the keyboard has become an extension of his hands and he never touches the mouse. It's crushing to see that kind of speed and power.

The speed and efficiency of the keyboard isn't just a lot faster, it is so much faster that it changes the way you work.

But it's hard to get there, you have to find the commands, practice them, practice, practice, and all the while it would be easier to just reach for the mouse.

And yet I've made it a goal of mine to always get better at using the keyboard. A little bit a time, I figure I'll have no need for a mouse when I'm 80 or so.

Have you taken a full touch-typing course? Touch-typing (REAL touch-typing -- not practiced single-finger poke or custom-splayed hand peck) installs keyboard use in your cerebellum and removes the function of typing from your higher brain.

A new alt-key should be as difficult to master as a new coffee mug: You look at it for a fraction of a second and then put it into regular use without any further thought.

If you have to find keys, memorize them and 'practice, practice, practice', it's a sign you may need to master the basic tools of your profession first.

http://www.typingsoft.com/stamina.htm

Good, free, simple touch typing software I like. I used it to switch from qwerty to dvorak and have gone from a peak of 78 wpm to 100 wpm (5 char = 1 word) over the course of 2 years. I think I was able to regain ~60 wpm after about 2 months, and then I stopped practicing a lot.

An especially useful feature is that you can specify your own text source, so I like to type a book I'm reading. In a way, it is a literature version of Guitar Hero.

On a related note, Dictator is a good piece of software for speed reading.

http://dictator.kieranholland.com/dictator.html

It uses the Rapid Serial Visual Presentation (RSVP) technique where words/phrases are flashed on the screen, so you don't have to scan a page. If you optimize the chunk size to the size you can take in instantaneously, the software greatly increases your reading speed (caveat, some stuff like tech reading is just inherently slow). It increased my reading speed by 300 wpm.

Keyboards aren't just about memory, they are a lot slower then the mouse if you don't have almost instinctive muscle memory.

Muscle memory is always instinctive, it's hardwired in the human brain. Everybody can teach his/her muscles to act "on their own" for a task as simple as this without that much practice. (Remapping your keys in your keyboard helps a lot for comfort.)

But it's hard to get there, you have to find the commands, practice them, practice, practice, and all the while it would be easier to just reach for the mouse.

I think the trick is to forget about "practising" and just do it. If the command is really helpful, you'll end up using a lot anyway, but the mindset is different (forced practise vs need).

Muscle memory is always instinctive, it's hardwired in the human brain.

Indeed. It's like walking. You don't think you are walking, you just walk.

Everybody can teach his/her muscles to act "on their own" for a task as simple as this without that much practice.

I'm not sure how you can teach one's muscles to act "on their own" without too much practice. Maybe if one were trained by injection, Matrix style. :)

You need practise to nail something, but not that much as one would think. Once you learn to do it, the extra practise is for speed (take guitar/keyboard playing, for example).

I guess you could argue that without some speed, you can't really say you've learned something (what's the point in playing "Voodoo Child" at snailpace?), but the threshold is still there.

I remember when I was jockeying my Dad's Apple II+ in grade school. I got to typing "catalog" very quickly. So quickly, that I doubt I was conscious of placing each individual finger.

I wonder if mouse + keyboard input could be augmented by head gestures? NaturalPoint sells an economic mouse that can be operated by placing a reflective dot on a pair of glasses or a hat. What if instead of being a mouse, this could be an entirely alternate input device? You could read head gestures in the same way that the Wiimote detects different movements. These gestures would likely become "muscle memory."

One thing that is pretty annoying about GUIs is the fuzzy factor: there are often a few pixels that could be the button, and could be the background, but you can't tell which it is for sure -- so they're effectively off limits. A keyboard doesn't have this issue, so it's a lot easier to turn commands into reflexes -- your reflexes are less likely to be wrong.

This is also why I switched from T9 to whatever the other alphabet-entering system is for cell phones: it was just too frustrating not to know exactly what the output would be if I typed quickly.

I'm amazed, too, how certain words I have "over-learned" to type. For instance, it's almost impossible for me to type the word "create" without adding a 'd' to the end unless I make a concious effort to avoid it. I also typed "amazing" in my first sentence before quickly backing out the "ing" (freudian slip of my ego?).

I wonder how this over-learning might be related to reading behavior. I'm sure we've all seen those sentences where the author transposes the middle characters of each word while leaving the first and last characters the same; the sentence is suprisingly not difficult to read. Maybe in the same way our brain has a "good-enough" pattern matching behavior while reading, it quickly recognizes the pattern of the word we're typing and says, "I know this one, I'll take it from here."

Some graphics applications (like 3D modeling package) have pie-chart like menu system; for example, if you type SPACE, an overlayed menu appears around the mouse cursor and just moving a mouse a bit to that direction and release SPACE triggers that item (you don't even click).

Watching the experienced users using that interface is just amazing. They don't read the menu items; they know which direction is what by heart, probably in muscle memory.

I think the trick is to forget about "practising" and just do it. If the command is really helpful, you'll end up using a lot anyway, but the mindset is different (forced practise vs need).

I wholeheartedly agree. I have become a 'keyboardist', as it were, just by using what I needed.

If you find a shortcut for something you use often, eventually you'll get used to using it, not because you want to, but because it'll feel natural to.

I think you are right regarding muscle memory. I have terrible memory for everyday things yet I'm very good at "remembering" commands and keyboard shortcuts.

For example, I recently started using Emacs. At first you do have to do a lot of remembering of commands, but after a while you don't really think about the commands you are typing.

It's kind of like playing the piano. If you learn a song and practice it enough times, you probably don't remember every chord or note, but your hands play the whole song kind of like if your hands have a mind of their own. When a musician is asked something like what the chord progression of a song is, or what the notes to the melody are, usually he sits down at the instrument and plays it out with his hands first, triggering his memory.

So I think it mostly boils down to practice, rather than memory. When he says "EMACS is for people that can remember lots of stuff," that's not quite correct.

when somebody asks me about an Emacs shortcut I usually have to at least move my fingers as if I was typing and visualize what the keys would be. Muscle memory is truly amazing.
I will get this effect in vi when I type out a long string of manipulation commands in normal mode. I'll look down and realize that I don't even remember what I typed to get that certain effect. Kinda freaky.
If you record your vim input to a macro (q key), you can paste the contents of the macro to see what you typed. Unsurprisingly, mine look like line noise -- vim macros are very much write-only.
I learned Emacs first, and then became a vi user in the last few years. However, I notice that when I need to use emacs for some reason I can type the correct keyboard shortcuts, even though I don't remember anymore what the exact combination is ... It is a tryly amazing feeling.
If you have to think what the key combo is, use the mouse.

And sacrifice ever getting to the point where you don't have to think.

I find I am able to memorize keyboard shortcuts if they are actually stated in the mouse menus. I hate it when there are no keyboard shortcuts in the menus. For some reason so many apps make that mistake (including Eclipse).
The real problem with keyboarding is the TERRIBLE lack of consistency. Apart from a very few commands, most applications seem to just randomly select keyboard letters to map to tasks based on the first letter of the english word. When I switch to a german keyboard, the key stroke commands change again! I use my apple, and things are different again.

It does not work. A UI has to be consistent, and keyboard commands are extremely inconsistent. Look at the vim style commands and compare them to the windows style commands.

And another problem with keyboard commands is that there is no hint. How many people have gotten stuck in vim because the interface is not acting as expected?

Using a gui to shut down an App, I look for an X and press it. Using a keyboard, it could be ctrl+q, ctrl+c, ESC, :q!, Alt+F4, Alt+B (German Systems), Alt+Q (English Systems) or exit().

It's TERRIBLE user interface design to have so many different ways of performing the same action on the same operating system.

F1 works because it's always Help. The arrow keys work because they always mean the same thing. That's how keystroke commands should work: One combination, one meaning - all the time and everywhere! So when you learn that stuff, you know it.

I don't want to invest my time in learning app specific shortcuts for applications that I don't use that often. And that are liable to change anytime.

The state of keyboard control of software is broken, and has been broken for a long time.

My suggestion for the fix - an OLED keyboard that switches to "command mode" when a button is pressed. So the commands are always in the same position with all apps, all layouts, all languages and stay consistent.

That's nothing to do with the keyboard and everything to do with bad UI.

I could just as easily come up with a poorly thought out rant about how my options panel moves from "tools->options" on Windows to "edit->preferences" on Linux, how tab close buttons are placed wherever the user feels like, how tooltips are haphazardly added to an app, how sometimes the close button exits the app, other times it minimizes to the system tray, etc.

A badly designed user interface sucks. There are lots of them out there.

So which of the examples above (with the exit keystroke) is well designed, and which is not?
<rhetorical question> So which of the tab button locations is well designed, and which is not? </rhetorical question>

It doesn't matter which one is used, so long as the application sticks to the platform conventions, and for the actions that don't have platform conventions, picks bindings that don't need you to be a finger contortionist.

It doesn't matter if the 'ok' button is to the left or right of the cancel button, but if a UI designer swaps them around relative to what the platform normally does, he's just designed the UI poorly. If 'q' exits a command line app normally, but the developer makes 'esc' exit his app, then you just made a poorly designed UI.

I've spent time in the OS X keyboard shortcuts pref pane setting up the shortcuts to be identical. For example I set up Safari to search in page when I press Cmd+/ because I used to be Firefox fiend.
I tend to go to the mouse as soon as I have to work with more than one window, but I think keyboarding wins long-term.

In my opinion, the advantage of keyboarding is not due to its being faster, but the fact that, once learned, it doesn't break flow. The time lost due to mousing is trivial, but the compromise to flow is significant, at least for me. This is why hackers and gamers alike prefer to keyboard.

"I tend to go to the mouse as soon as I have to work with more than one window"

The particular window manager you're using might have something to do with that. I'm looking forward to upgrading to a tiling window manager, myself. When I'm done procrastinating.

I was working on a project with another programmer, and there was this little "test" window and an icon that only showed up when you alt-tabbed to our app (it is a system-tray-only app). I simply assumed that the other guy knew about it and was going to take it out before release. Well, it stayed there for a long time, and the release got closer and closer. It finally got entered as a bug, and I asked the other developer "so you weren't going to remove it?"

He said "I didn't know it was there. I don't really use alt-tab."

The difference between keyboard friendliness on OSX and Windows has always been fascinating to me. On OSX, even being able to tab between buttons in a modal dialogue is off-by-default. Opening folders in the Finder is cmd+O instead of just enter. I still have no idea to this day how to access the menu bar from the keyboard.

Meanwhile on Windows, I spend 99% of my time on the keyboard, since both Explorer, Visual Studio, and all the other apps I use couldn't possibly be friendlier to shortcut keys. The consistency gets better with every release as well.

Maybe helpful info:

With dialog boxes on OS X you tap Return to use the highlighted option and Esc to select Cancel. (Notice how the keys' left-right position on the keyboard matches the dialog?)

For the common "Don't Save | Cancel | Save..." dialog you can type Command-D to choose Don't Save.

To get to the menu bar type Ctrl-F2.

I think OS X definitely directs you toward using the mouse, but I've found that keyboard shortcuts do exist for most everything.

If you're a keyboardist and use OSX, give QuickSilver a try. Awesome little app -- I hardly touch the mouse all day. I'm so dependent on QS that I look clumsy using a stock OSX install without it.
Oddly enough, I find that I have to put my hands on the keyboard to figure out what a particular emacs command is. My muscle memory has outlasted my 'brain' memory.
The My Favorite Text Editor debate might change its spots, but it just never gets old.
Where do mouse gestures fit in? It seems like they're in the "remembering lots of stuff" category (though there is less possible variation to the mouse signal, it only has so many buttons and relative movement/timing).
If you can't remember keyboard commands, programming idioms, etc. will be a bear.
Working in financial models all day in Excel, I can't imagine having to use the mouse for any more than 10% of my work. Keyboard shortcuts are so much faster that they basically render a mouse useless.

It takes some getting used to and a bit of practice, but once you get comfortable with the keyboard, there's no turning back. I really only use the mouse for casual web browsing and solitaire.

as expertise goes, keyboard > mouse