Wednesday, August 27, 2008

Mousers vs. Keyboardists

Since the dawn of the graphical user interface there has been tension between those that favor the mouse and those that favor the keyboard. I am reminded of this as I explored the new experimental Firefox plugin from Mozilla Labs called Ubiquity.

Ubiquity was designed by human interface designer Aza Raskin, who is also the son of Jef Raskin also a famed user interface designer who was one of the early leaders/managers of the Macintosh project at Apple. This is only relevant because Jef’s work after Apple was very keyboard focused, and ubiquity reminds me of much of the gestalt of that work. The point is that Jef, who has since passed, and now son Aza have a high regard for the value of keyboard input.

The idea behind Ubiquity is that you hit a command key sequence like “ alt + space” and it opens up an overlay window where you can type commands. The commands input system is really smart. It provides lots of help like suggesting what commands are available based on the first few characters you type. You can also do operations on selected text. For example you can select an address and type “map this” and it will, in the ubiquity window, show you a Google map with that address marked.

But this piece is not a review of Ubiquity. In short, Ubiquity is a very interesting idea. I want to like it, and I may yet get to that point, but I have to admit am not quite there yet. This article, though, is really about the some of the thinking I have done about the role of the keyboard in human interface, which playing with Ubiquity got me thinking about.

Let’s start with this: keyboardists and mousers are different.

I am not a keyboardist.

Now don’t get me wrong, I am a fairly fast typist. But my problem is I can’t remember commands. Putting a keyboard command in my head is like putting sand in a sieve. The reason I love graphical interfaces is because I can’t remember shit. I wish I could, because I am sure I would be much more efficient. Keyboards are much faster than mice and GUIs. The problem is when you are staring at a keyboard you have to remember what to do. A GUI is for me a giant cheat sheet.

The thing is I think most people have brains that are similarly not wired for memorizing lots of commands without lots of effort. And so I am at least thankful that I am not alone.

At Kloudshare, I am a mouser. My associate, Will, is a keyboardist. I use Eclipse for development. He uses EMACS. He will never use Eclipse. I will never use EMACS. EMACS is for people that can remember lots of stuff. Eclipse is for people that need hand rails. Will has a much better memory for such things than me.

And so, bringing this back to Ubiquity, I see that Aza is trying to bring the benefits of keyboards to the keyboard allergic masses. He does not do a bad job at all, and I am going to give it a shot. But I must say I am skeptical this kind of design philosophy can go mainstream. If I am right, there are many more mousers than keyboardists and no matter how hard you try, you just can never convert people from one group to the other.

27 comments:

  1. Hi Hank, great post. I'm very much a keyboard user. I think its a skill that is worth learning - and the more you use them the more natural they become. Your post put me in mind of a great quote in an article by Jakob Nielsen: "Mouse buttons and modifier keys give us a vocabulary equivalent to a few different grunts" (http://www.useit.com/papers/anti-mac.html)

    So thanks for the link to Ubiquity I'll definitely be giving it a go!

    ReplyDelete
  2. I'm guessing that you don't use the vim text editor, either :)

    I definitely am more of a keyboardist. Knowing shortcuts lets me be so much more productive in certain tasks.

    Not that I have anything against mousists, I'm just too impatient to remember where to have to click!

    ReplyDelete
  3. If there were no guis I'm sure you'd be a good keyboardist.

    ReplyDelete
  4. "If there were no guis I'm sure you'd be a good keyboardist. "

    The fact that people do all actually have names doesnt make me any better at remembering them unfortunately.

    In fact, I have been around long enough that I was programming for almost 10 years before the mac came out. There were no GUIs. I was always OK at it. But the Mac was always easier for me than the command lines I used from univac to pdp-11 rsts-e to radio shack, etc.

    ReplyDelete
  5. Hey Hank -

    Take a look at uvLayer, (http://www.uvlayer.com), our Dynamic drag and drop UI for video. It's our goal to move away from mouse and keyboard towards touch, etc.

    Its not an easy task.. we still have a couple of right click and mouse over commands.

    Let us know what you think..

    ReplyDelete
  6. I think it's interesting that there are people that think keyboarding is generally better than mousing. Once I heard that the reason many kids like dinosaurs is that learning their obscure names gives them a feeling of power and control (even though they obviously have no power over dinosaurs). I wonder if something similar is going on with the keyboardists.

    Also, I'm reminded of the research that says keyboarding is consistently slower than mousing:
    http://www.asktog.com/TOI/toi06KeyboardVMouse1.html

    ReplyDelete
  7. By the way, for good keyboardist, there is Launchy (google it), which is already taking a bit the idea of "alt+space", but for any command on the system

    ReplyDelete
  8. As Hank said, some people just don't have the mental faculties to take advantage of the increased speed and productivity offered by the keyboard. Is there anything we can do to help these people? Something like a short-bus for mousers?

    ReplyDelete
  9. A man after my own heart! Favorite quotes:

    "Putting a keyboard command in my head is like putting sand in a sieve. The reason I love graphical interfaces is because I can’t remember shit."

    "The thing is I think most people have brains that are similarly not wired for memorizing lots of commands without lots of effort. And so I am at least thankful that I am not alone."

    Yes, Indeed you are not alone! Finally I can unburden my guilt for being the world's clumsiest EMACS user.

    We design interfaces for people who are out in the field and are lucky to have a flat surface upon which to place their laptop. No place for a mouse. And for one-handed entry (e.g., entering data while driving) Ctrl-K-F3 isn't easy.

    We periodically survey touch screen and voice data entry technology looking for improvement.

    ReplyDelete
  10. Jon:

    I think the real problem is making a blanket statement that "keyboarding is consistently slower than mousing". Context and user base are everything. Context, because it depends on what applications you use (some have better shortcut keys than others), and user base -- because it makes a big difference *who* is using the keyboard. I would say, for the average user, that the mouse is faster because there is very little to remember (move the pointer, click, double click, drag). Most average users aren't going to take the time to *learn* the keyboard shortcuts, so of course they won't get fast at using them. However, for a person who has taken the time to memorize keyboard shortcuts, and uses them enough that they don't even have to think about them, there is no comparison: Get out your stopwatch -- the keyboard is *many* times faster than the mouse. I know this because I and most of my friends use the keyboard *a lot*. There are some things that the mouse *is* faster for (like manipulating an image in a drawing program). But for things like editing text, you'll never come close with a mouse to the speed of someone who knows a small subset of their editor keyboard commands on a decent text editor. I personally use Vim to edit text, and there's no way I could do what I do in vim with a mouse. Granted, it took a fair bit of time to learn the commands, but it was *so* worth it. I can make wide sweeping changes to a text file in seconds that would take forever to do with a mouse. Some of my friends use Vim, some use Emacs. Both are powerful tools for editing text. I think Vim has a bit of an edge efficiency wise, because it is based on vi, which was designed to be run on a 300 baud terminal, so it is very keystroke efficient. However, using Emacs' keystrokes is still way more efficient for editing text than using a mouse.

    Yes, I *do* get "a feeling of power and control" from using the keyboard in my text editor. However, it is not a delusion. The reason I get "a feeling of power and control" is because I really do have have much more *power* and much greater *control* when I use the keyboard in vim.

    Now, I am not suggesting that all applications are as keyboard-efficient as a good text editor. They aren't. Many applications have keyboard shortcuts that stink. Also, many applications are not designed to be used with keyboard shortcuts -- they are designed to be used with the mouse. And what do you know! Those applications stink when it comes to using the keyboard. AT best, the keyboard shortcuts are an afterthought -- something added to the app only because it is "expected" that every application have some. If an app is not designed to be used with the keyboard, it will not be any good for using with the keyboard. The primary "command interface" (for lack of a better term) most applications are written for today is the mouse -- and what a surprise, today most applications work better with the mouse than the keyboard.

    I should add some qualification to the statements of the previous paragraph. Even with the lousy applications there are some operations which are faster with the keyboard. For instance, if I have a rectangle selected in my favorite graphics editor, it is much faster to CTRL-C to copy that rectangle and CTRL-V to paste it somewhere else, than to use the mouse to select the Edit menu and then click on "cut", select the edit menu again and click on "paste". Granted, I would *always* use the mouse to *select* that rectangle, but that is an operation for which the mouse is a much better choice.

    Getting back to my original point ... It is wrong to say "keyboarding is consistently slower than mousing" without some qualification. I think the context needs to be more explicitly stated:

    "For the majority of modern applications, and the majority of users, keyboarding is consistently slower than mousing (for most operations)"

    I think that is a more accurate statement. There are many of us who use applications designed for the keyboard, and who put in the time to learn the keyboard comands. For us there is no comparison -- the mouse will only slow you down.

    ReplyDelete
  11. I think ubiquity's innovation is making it easy for non technical users to write mashups that are accessible anywhere, not the command line interface. I could imagine a ubiquity toolbar with a rotating set of icons and small drop down forms...for instance the google toolbar has lots of ubiquity's example cases and uses a gui to make them accessible.

    ReplyDelete
  12. You say you are not a keyboardist but when you want to communicate with the world, say through this blog entry, you use a keyboard.

    When you use a mouse to operate a computer, you are not "communicating" with the computer, you are using it like a hoe. Mousing is closer to moving the gear shift on your car; keyboarding is closer to telling someone, "drive me to the store". Mot of the time, a robotic chauffeur would be better than a simple car.

    Mousing is like pointing at rocks, and then pointing a spot on the ground, while your fellow helpful caveman rolls them there. Keyboarding allows you to tell the caveman, "and keep doing that with similarly sized rocks until we have a wall."

    Now, obviously sometimes you don't want a robot, especially one that insists you speak it's complicated language precisely and seems to have opinions of it's own. Sometimes you need to just get the job done and stop wondering about command not found and syntax errros.

    That said, I think more people are using mice when they should use keyboards than the other way around, by several factors of ten.

    A big part of it is that a GUI can provide you with context and hints when you have no idea what do to. It the liguistic equivalent of walking into a store and saying "Uhhh . . . " and some one says, "Do you want to look at our X product today?" The window provides the context -- you wouldn't open OpenOffice unless you wanted to do something with documents, and the hints are in all the menus, which you can pull open and look through until something jogs your brain, and you say "that's what I want to do".

    Building a command line equivalent is hard but possible. The most elaborate tab-completion setups in bash/zsh approach it. Some configurations of emacs and other IDEs do very nice things in that direction.

    ReplyDelete
  13. I think that applying the label of "mouser" and "keyboardist" at the person level is a mistake. I love and use Vim, and as such, for development-related tasks I would certainly be considered a "keyboardist". But there are plenty of other tasks for which I am a "mouser", and appreciate a good hand-holding GUI.

    It all boils down to how often you're performing the task in question. Yes, Vim (or Emacs) has hundreds of commands that you can remember. But if you use Vim every day for hours on end, learning the commands incrementally, they become entrenched in your muscle memory and the productivity gains become very real.

    The tasks for which I'm a mouser are the ones that I do less frequently. Performing a task less frequently obviously makes it harder to commit any keyboard commands to memory, and even if you did put in the time to learn the commands, the return on your "memory investment" is less, since you do the task less-frequently in the first place!

    ReplyDelete
  14. If you have Ubiquity installed, you should select a text and right click. Yes, you don't have to be a keyboardist in order to use Ubiquity.

    ReplyDelete
  15. The mouse is important for visual work. No one wants to use the keyboard for pixel-by-pixel video editing. The keyboard is certainly "faster" than the mouse at editing text. Try typing a document with a mouse; no matter how good the interface gets I'll guarantee you that a competent keyboardist will destroy a competent mouse user every time.

    That being said, when not dealing with a clear-cut use case like this, we run into trouble. The problem is that the combination of a mouse and a keyboard is vastly superior to having only one of them.

    We simply need people to stop trying to say something is obsolete when it clearly is not, and instead try to use the equipment that's available to its fullest (at least until it truly is obsolete).

    ReplyDelete
  16. Wow I almost can't phrase this not to be a flame.

    What do you mean, you can't remember keyboard shortcuts? Are you lacking a human brain? If you use a shortcut a few times, your brain just associates it and there is no memorization required.

    A keyboard is an efficient way to interact with a computer, a mouse is not.

    ReplyDelete
  17. I really think its something else. Even though not being able to memorize keyboard commands makes it difficult to become a keyboardist, I think one of the real reasons is that it rubs against how we (mousists) work and think.

    I like QuelSolaar's insight about attention sorting - Your brain computes things in a certain order (first to last):

    motion
    color
    shape
    text

    (http://www.quelsolaar.com/technology/seduce.html)

    For those with short attention spans (ADD), text, the last thing we focus on, is a pain to try to remember. GUIs, with motion, positioning, colors, shapes, and visual cues, are much more intuitive, friendly, and helpful to us.

    ReplyDelete
  18. Re: ...many people that have replied

    Being a "mouser" does not mean you don't use a keyboard or know a few shortcuts. It says much more about the programs you use than your productivity. I am definitely a "mouser", I want a GUI, scroll wheel, and context menu at all times. I use Ctrl+[A,Z,X,C,V] (select all, undo, cut, copy, paste) all the time, but I'm sure most "mousers" atleast use Ctrl+[X,C,V] all the time.

    I've seen people who are "keyboardists" work and the only time I have seen them do something faster than I could do is when they search or edit multiple files simultaneously. The rest of the time they are working around the same speed or slower.

    From my experience keyboardists are rarely faster, they just seem to be doing more because they never stop typing and the constant noise of key presses makes them seem more productive.

    It's like my drive home. I can take the shortest route (mousing), which means sitting through the occasional red light where I seem unproductive or a seemingly faster route (keyboarding) where I need to drive a mile out of my way, get on the highway, drive ~70 mph down the highway and drive another mile I never had to worry about in the shortest route. I never make the unproductive stop if I take the highway, but ultimately I reach the same destination in roughly the same amount of time. One just seemed faster because I was constantly in motion.

    ReplyDelete
  19. Hello!

    I always hated your blog - I only came
    here because of hacker news postings.

    But for the first time, I loved a post you
    did. Really liked the no-excuses "The reason I
    love graphical interfaces is because I can’t
    remember shit."

    The funny thing is, for me, that I usually can't remember shit also - but for some reason I love the keyboard and know hundreds of unix commands.

    ReplyDelete
  20. Hello Hank,

    I'm sure you've seen the usability studies that showed that mouse is hands-down faster than keyboard for most tasks. Keyboards subjectively seem faster because the user's mind is more heavily engaged when remembering and inputing keyboard commands even though actions require more clock time to complete.

    http://www.asktog.com/TOI/toi06KeyboardVMouse1.html

    The keyboard shortcuts are more productive simply because it involves two-handed input instead of one. Were it convenient to build a two-mouse interface or reasonably priced touchscreen displays, you'd probably see those types of interfaces to more fully displace the keyboard for most activities.

    ReplyDelete
  21. Its unfortunate that OSX's interface has been misguided for so long by such bogus studies. While it is true that many users are comfortable with the mouse, it is also a crutch in many situations.

    This debate is also heavily entrenched in the 1980's. Using the keyboard is not limited to some command line words and ancient text editors.

    The keyboard accessible menu, (alt + the underlined menu item on the menu bar), is a contextual help system that is always available. If you forget a key combination, well, look for the underlined letter in the proper category. If you want to be even faster, remember the Ctrl + other key(s) shortcut. These shortcuts are also visible on the menu.

    Watching programmers use the mouse is frustratingly slow. Its like watching molasses flowing. It makes it very difficult to think because the labor and thought put into locating and clicking the items requires concentration.

    Using keyboard shortcuts allow you to use muscle memory. Muscle memory does not require much higher order cognitive functioning. This means my mind is free to thing of the problem at hand. I can think more abstractly more quickly than when using the mouse.

    The speed at which tasks can be accomplished also help with the cognitive flow. I dont have to break my concentration to perform the mechanics of an action. This means I can get into the zone faster and remain in the zone longer.

    I find that that programming editor is IntelliJ Idea. The reason is most panes are accessible with the keyboard. Also, the menu items and buttons are consistently accessible to the keyboard.

    While IntelliJ Idea is the best editor that I have used (I've tried many editors too), it is still has many imperfections and areas of improvement.

    The next generation of the User Interface needs to assert itself. The aging computer illiterate will be overtaken by a generation who never knew of a world without the internet. I expect that there will be much improvement to GUI's in the near to medium future.

    ReplyDelete
  22. That's why you use intellisense/autocomplete/whatever they call it.

    Start typing on a word and the rest automaticly pops up.

    You don't have to remember or learn anything.
    Just guess and type.

    ReplyDelete
  23. Hank, the rules for making an application keyboard-friendly are well understood (tab order, hot keys, consistent modifiers, etc).

    As a mouser, what would you say make an application mousable?

    ReplyDelete
  24. I love that quote: "Eclipse is for people that need hand rails." Having spent the better part of my early career doing C development almost entirely in EMACS, and now having spent a good part of my later career doing some Java within Eclipse, I'd say Eclipse has quite a bit more functionality than hand rails! That being said, there's probably no way I could go back to Emacs after the many conveniences that Eclipse gives me. Good post!

    ReplyDelete
  25. CLI all the way, but I'm a vi person 20+ years.
    I've even created my own t-shirts at http://www.printfection.com/geekerr/CLI-Back-Only-T-Shirt/_p_665203

    ReplyDelete
  26. who said you need to remember lots of commands to use keyboard?
    By using bash or any other commandline, the most typed command at my pc is "apropos" wich tells me what command to use.
    similar the tab key what is most time even a bit faster but you need to remember the first letters.

    Ubiquity on the other hand aims to be in natural language.. so you just have to type in email if you want to use your email. Other Services like digg or google have the name as command, so if you want to use twitter you would allready know what the command is... yeah you guessed it! -> "twitter"

    Remembering commands is hard for me to, but most time i just plainly DON'T NEED TO!
    There are tools that do!

    ReplyDelete