9 ms·
Is the keyboard faster than the mouse?
- LoSboccacc 9y agodepends, duh. are you typing code or are you documenting a graph?
- desireco42 9y agoIt depends, if it is wired or wireless ;) I think we need both to be effective and this is false question in a way, but still good to explore from usability point.
- hackcasual 9y agoI never feel while programming that I'm bottlenecked by my input speed.
- ythn 9y agoVery true. People talking about how vim is so much more efficient than me using VSCode with my "slow" mouse inputs and I'm just thinking about how my brain is the biggest bottleneck of all - it completely dwarfs keyboard and mouse bottlenecks.
- darkerside 9y agoThe slowest and most time-consuming thing is not writing code, but reading code. And vim, for me, optimizes reading a code base distributed across large numbers of files. I can be anywhere I want in seconds. I know other editors also have fuzzy file finders and text search, but damn does it just feel good surfing text objects at the speed of thought!
- hxegon 9y agoI agree 100%. I also feel like vim helps me stay in flow by providing a frictionless input environment. The way vim edits text is pretty close to the way I think about text. "change these quotes", "delete until that >", etc.
- WorldMaker 9y agoVSCode has a great Vim plugin these days and even without it, a ton of good key shortcuts. Not that maybe you need them today, but options if you need them. I think that's probably the best summary here: it's great having options. Also, speed isn't the only bottleneck to worry about. It's easy to forget about things like ergonomics. Things like hand movements in mousing and back and forth between mouse and keyboard can slowly take their toll. Again, it's great to have options to control the overall amount of movement.
- chillee 9y agoAwww, thanks. (One of the developers of VsCodeVim here.)
- 0x445442 9y agoThis! I've been developing for over 20 years. In my experience, it's never been the case that typing speed or keyboard fu has been the bottle neck for that development.
- twothamendment 9y agoI agree. I was asked in an interview how fast I type. I didn't know how many WPM, but said "Average - maybe even kinda slow". I followed up with a similar thought - I tend to spend more time thinking about the correct solution, finding the right spot in the code than I do typing. I got the job. I've had the reputation at every job as someone who can get things done quickly so it must not hurt too much. Knowing what to type is way more important than how fast you can lay it down. Of course, having both would be ideal.
- ebbv 9y agoIt never should be. If it is you're probably churning out some really crap code, and you should stop and think about what you're doing.
- hyperpape 9y agoIf you're cleaning up some really crap code, input speed becomes an issue. But I do agree that well-factored code makes for less typing, though navigation speed can be very important.
- randallsquared 9y agoMy bottleneck is usually how many things I can hold in my head at once. Getting things out of my head before I forget them and have to start over is not entirely about input speed, but it does have a significant effect.
- nategri 9y agoThis is probably the best take I've seen on the issue. Well put.
- LukaD 9y agoMy input speed definitely is my bottleneck when writing down the code I have constructed in my head. So why not optimize this part of programming?
- Tepix 9y agoLearning to type at 90wpm or so should do the trick.
- arohner 9y agoI type at least that fast, and the keyboard is still a bottleneck for me sometimes. When using emacs/vim and primarily using the keyboard, there are extra gains to be had by typing faster, because you can use keyboard shortcuts to navigate, find text, etc. Unless you're playing a videogame, it's unlikely that you'll practice or improve on your mouse coordination and make significant gains there.
- stinos 9y agoMy input speed definitely is my bottleneck when writing down the code I have constructed in my head Same here. Never learned to type properly and this happens often enough. I can't count the numbers of times I thought 'man, if I'd just have a brain-machine interface which would tranlate my thinking into text this thing would have been done 10 minutes ago'.
- sqeaky 9y agoI think this often as well. And I have actively practiced my typing to try to reduce this pain. I am stuck at a sustained speed of about 55 WPM, much slower than think. In bursts I can get it much higher, but not for a whole C++ class or lengthy function. I know it shouldn't annoy me but it does that my father, who is practically retired and has has never coded types at like 80 and this while in the military of all the unlikely places.
- Tepix 9y agoIf you see the brain as a multi-stage somewhat parallel pattern matching engine, I wonder if the speed of reading is limited by the mechanical capabilities of the eyes or by brain speed itself. If it's the brain that's the limit then a computer <-> brain interface will likely be equally slow (or it has to bypass the pattern recognition parts of the brain, which is to say.. most of it)
- bluGill 9y agoStudies (that I don't know how to look up and probably am remembering wrong) show that the eye jumps forward and back while reading. It is easy to use eye tracking to figure out what word your eye is looking at. They used some scheme to figure out what word subjects were reading, and blurred the rest, and it slowed reading down when the next two and previous words were not readable. Thus the limit is not mechanical as the eye is moving faster than the brain to feed both the current word and preprocessing of the next few.
- adrianmonk 9y agoI do sometimes because my only to the computer tends to happen very unevenly, in bursts. I ponder things for a long while, then when something clicks mentally, I want to get it typed in as fast as possible before I lose it.
- bo1024 9y agoIn my experience, only a small fraction of the time editing a program is spent "inputting" as opposed to editing.
- dragonwriter 9y ago> I never feel while programming that I'm bottlenecked by my input speed. I do; it's not a long-term limiting factor, of course, but when an idea crystallizes it's a short-term drag sometimes.
- anon182429 9y agoThink about it like this: To us VIM users, keyboard shortcut users, and speed typers, watching you mouse around clicking buttons is the equivalent to watching someone try to program over a laggy RDP connection, or use a really slow machine, or someone typing out one shell command at a time and hitting enter after every single one when they could just use &&, some for loops and some redirections and finish. You can try to say that it really doesn't slow you down, but it really does, and it's very noticable to other people.
- KozmoNau7 9y agoKeyboard is best for digital input (keypresses, either/or actions), and mouse is best for analog input (precision, sweeps, variable speed). Not that complicated.
- darkerside 9y ago| the author typed a paragraph and then had to replace every “e” with a “|” As a vim user, just thinking about doing this manually makes me tear up.
- jandrese 9y agoI would write a C program to do it before I would go and manually select/replace every instance using a mouse.
- setq 9y agoDepends if I'm being paid by the hour or the job :)
- bluGill 9y agoI assume you would call it sed?
- jandrese 9y agoI was trying to illustrate how far down the list I would go before resorting to manually selecting each character with a mouse. Sed is much higher on the list. That's a little unfair. If I was only changing one or two characters then the mouse is fine. If I'm changing more than about 10-20 there will be a hunt for an alternative.
- deleted 9y ago[deleted]
- tcfunk 9y agoBut what if, in the midst of writing this program, you need to rename all occurrences of a variable?
- deleted 9y ago[deleted]
- suprfnk 9y ago
- TurboHaskal 9y agoI don't know. I went from "how do I exit vi" to "mice are for losers" to "who am I trying to impress anyway". My productivity is still crap even though I may look like a professional StarCraft player while coding.
- mihaifm 9y ago> "who am I trying to impress anyway" Agree, besides you need your mouse to copy-paste code from StackOverflow anyway
- computerex 9y agoNot with Vimium you don't.
- kirubakaran 9y agoHow do you select a block of text with Vimium?
- egwynn 9y agoI’ve never heard of or used Vimium before. But based on the name, it stands to reason that some variant of the ‘v’ key should select text.
- garou 9y agoVisual Mode https://github.com/philc/vimium/wiki/Visual-Mode https://github.com/philc/vimium/wiki/Visual-Mode
- digi_owl 9y agoNote btw that Firefox support something called caret browsing (maybe other browsers as well, but i stick with Firefox if technically possible). Hit F7 and you can navigate around a page using a caret.
- 9y ago
- nhumrich 9y agoIts not about speed, its about ergonomics.
- FollowSteph3 9y agoIf you really want to see the advantage of keyboard hotkeys just look at the top Starcraft players. Yes they still use their mouse but they need hotkeys to even be able to compete at that level. They actually measure the number of actions they can execute per minute! There's no way it can be done only with either just the mouse or keyboard I think software development also falls into this category. Some hotkeys are at least an order of magnitude faster. And 90% of the time hotkeys will be faster. But in some cases you absolutely need to use your mouse, it's just much faster. Here's a YouTube video that discusses what it takes to be a competitive Starcraft player and shows them entering actions: https://youtu.be/zmYhX8fjmo8 https://youtu.be/zmYhX8fjmo8
- hultner 9y agoAs a heavy keyboard user I have to agree. I've been using vim extensively and also use vim bindings for my browsers, without them navigation feels constrained. Obviously I still use the mouse for some tasks and certain types of text selection are much easier with a mouse then a keyboard for me. I'd say that is heavily dependent on personal workflow and taskset.
- snarfy 9y ago> Obviously I still use the mouse for some tasks and certain types of text selection are much easier with a mouse then a keyboard for me. Like Starcraft, the best thing the mouse is for is box selection. Everything else is done with keys.
- oblio 9y agoAnd for actually pointing at things. My brain doesn't "point" at something in Vi motions, not matter how much I try. Maybe some people manage to rewire their brains, I haven't. Despite using Vi/Vim for a long time.
- hultner 9y agoGenerally I'm inclined to agree. However with textual hints pointing with vi-motions are a breeze. In addition my joints click when I reach for the mouse putting an actually physical barrier between keyboard and mouse movements for me personally, hence I tend not to move between the two a lot. Laptop touchpads doesn't induce this strain so those are easier.
- deleted 9y ago[deleted]
- chrismorgan 9y agoIf you really want to make the question more interesting, throw a touchscreen at it. For general UI purposes, mice are hopeless when you compare them to your fingers touching the screen directly.
- oblio 9y agoTo be honest, if we could somehow make an effective pen technology, that would beat both hands down in many scenarios. There's a reason we don't write things using our bare fingers :)
- chrismorgan 9y agoI use my Surface Book with touchpad (pointer/mouse), keyboard, touch and pen. Pen and touch can work quite nicely together, e.g. in Maps using touch to pan and zoom and pen to write, all in the one hand. But it certainly requires the software to have been designed with all of these possibilities in mind.
- juandazapata 9y agoI'm not sure if that applies to a 32" 4k display that is positioned about 10" away from the user in a typical desktop setting. I can't only imagine the pain in my shoulders.
- digi_owl 9y agoI guess that is why Microsoft added the hinge on their Surface Studio.
- jandrese 9y agoSelecting text with a touchscreen is the pits. My big fat fingers obscure what I'm trying to select and most of the UXes fit touchacreens make text selection a second class citizen.
- Razengan 9y ago
- andybak 9y agoAnother point missed by anyone using the AskTog article to argue against the need for keyboard shortcuts is the fact that you have two hands. My own Photoshop use often involves simultaneous or near-simultaneous use of both keyboard and mouse. Sometimes I start one action before the other is completed so my hand or cursor is already near the right place. There is no conceivable keyboard-only or mouse-only control scheme that could better this for one important reason: assuming some use of the mouse is needed (true of Photoshop and many other applications although probably not true of text editors and IDEs) then the cost of moving my right hand from the mouse to the keyboard and back again is a very large cost.
- digi_owl 9y agohttps://i.imgur.com/IZf6hSx.jpg https://i.imgur.com/IZf6hSx.jpg An image i ran across a while back, apparently the work area of some manga artist. Interesting all the square buttons are programmable keys, so each of them is likely mapped to a hotkey or similar.
- kps 9y ago> you have two hands. Every watch ‘the mother of all demos’⁰? Engelbart's system was designed to be used with one hand on the mouse and the other on the chordset. Xerox followed this with the Alto, and on to the Star¹, eventually dropping the chordset but with the same model: the mouse and the left-side function key block worked together.² ⁰ https://youtu.be/yJDv-zdhzMY https://youtu.be/yJDv-zdhzMY ¹ http://www.digibarn.com/friends/curbow/star/keyboard/ http://www.digibarn.com/friends/curbow/star/keyboard/ ² https://youtu.be/_OwG_rQ_Hqw?t=54m25s https://youtu.be/_OwG_rQ_Hqw?t=54m25s
- Crespyl 9y agoThis "context switch" cost of moving from keyboard only to keyboard+mouse (or mouse only) is why I always have both VimFX for keyboard controls in FireFox, and FireGestures, for mouse-only tools for doing most things. Whether I'm leaning back in my chair with a hand on the mouse, or sitting forward with both ands on the keyboard, I can have all or most functionality available without having to reposition.
- jbmorgado 9y agoFor me isn't just the fact that using the keyboard is faster to carry out a specific task, it is also that in Vim (or most places using a good keyboard layout) I don't have to take my fingers out of the home row and then carrying out the next action is also faster.
- Merad 9y agoThe real question is, does it matter? I've been programming for nearly 15 years and I'm really struggling to think of a time that my productivity has been limited by the speed with which I can interact with the computer. I've never actually tried to keep track of how my time is spent, but these days I wouldn't be surprised if I average 5+ minutes of reading/thinking/planning/discussing/etc. for every minute spent editing code.
- TeMPOraL 9y agoFor me, it's a matter of maintaining flow. I don't type code all the time, but when I do, I want to edit at the speed of thought.
- mnem 9y agoI suspect you'd need a few chord based keyboards to edit at the speed of though.
- bloomca 9y agoTo be honest, I'd go even further - I think we rarely code more than 10% of our time. I know, there is an argument that implementation matters – you don't think about typing at all with good sense of the keyboard, but I personally think it is overrated; unless you are super slow typists, it does not really matter. What matters, though, is the fact that it is some kind of an art – people master it, people enjoy when they are able to accomplish some tasks in an elegant way (coarse example is macro in vim).
- oddsockmachine 9y agoI experienced this recently. Crashed my bike, and broke my wrists. Had about a month where I could only type with one finger at a time, or gently use a touchpad. I thought it would be fine, since I could take my time and think things through fully in my head before typing the code. Instead, I found it so difficult - as if I could only think as quickly as I could type.
- anon182429 9y agoYes, but it makes the development process very frustrating when you have to wait for a slow machine, type slower, not navigate as fast, etc. It might not waste much physical time (totally guessing here, could be a lot), but it wastes brainpower and really kills my enthusiasm for the task. All of which are negatives. I optimize my code, why not optimize my coding environment?
- Razengan 9y agoRegarding speed across overall, day-to-day usage, the trackpad is closer than a mouse – you can move the pointer a fair distance and click/etc. with just your thumb while keeping your hands on the keys. And on the new MacBooks, I'm pleasantly surprised how the Touch Bar saves me from even reaching for the trackpad, sometimes.
- plazmatic 9y agoInteresting post. Thanks!
- creeble 9y agoAnyone have RSI problems with mice? I switched to a touchpad over 10 years ago, and my right hand RSI problems went away. But with an Ubuntu 16.04 upgrade, the touchpad driver went to hell (don't get me started...) and I've been using a mouse again for the last several months. So far no problems, but I really wish I could go back to my once-trusty Logitech touchpad.
- mnm1 9y agoYes. I'm waiting for Apple magic track pad 2 support in Linux before I switch. It's by far the best track pad I've ever used. Unfortunately Linux track pad support is shit as you point out. I'm hopeful it won't be in a few years. And people still wonder why Linux on the desktop will never happen. This is why.
- creeble 9y agoMy experience was that my trackpads worked perfectly with 12.04 and 14.04, but in 16.04 they changed the driver to... something that uses 'synclient' to adjust parameters. And this was a disaster; there are some 60 params that affect operation, and many of them have completely non-working defaults (like you sweep your finger across the touchpad and it randomly selects stuff). I tried for weeks to try and find some synclient settings that made my trackpad work as well as it did in 12.04, to no avail. I have another machine still running 14.04 (don't ask) and the trackpad still works perfectly. I tried posting on StackExchange, but I am apparently the only person (besides you?) that cares about Linux support for trackpads, or has trouble with the support in the current driver. So yes, I'll second your comment about Linux on the desktop.
- creeble 9y agoAnd yes, I tried going back to the old driver used in 14.04 (psmouse!) on 16.04 to try and get it to work, and I can't seem to make that work either. Hardware and Linux. Ugh.
- mnm1 9y agoWhich trackpad do you use? It seems anything more than point and click is almost hopeless, though I did get gestures working on the built in MBPro trackpad in Linux Mint.
- whizzkid 9y agoOne important area on where keyboard gets an unknown advantage is the muscle memory. Using mouse will require attention from your hand and eye both at the same time. On keyboard, you can let your fingers work while resting your eyes.
- joegosse 9y agoLearning keyboard shortcuts in Excel yields massive returns on productivity. For an intro, Joel Spolsky has a great tutorial: https://www.youtube.com/watch?v=0nbkaYsR94c https://www.youtube.com/watch?v=0nbkaYsR94c Investment bankers are famous for working without a mouse in Excel.
- WhiteOwlLion 9y agoThere's a lot more potential for repetitive stress injury (e.g. carpal tunnel) with using mouse on one hand constantly. At least with a keyboard, you are distributing the stress among four fingers and a thumb. Although, admittedly I use my right thumb for space rather than alternating with my left thumb.
- kps 9y agoBack when the Ask Tog piece came out, I wrote a Slashdot comment along the same lines as this article. I had one additional point. Keeping in mind that this uses a WYSIWIG editor, use a very slightly different benchmark task: instead of replacing every ‘e’ with ‘|’, replace every ‘l’ with ‘|’ — and by the way, your text is in 6 point Helvetica. And you'd better not miss any, or replace any ‘I’s. The key (badum tish) is that characters on a keyboard are semantically connected to characters in a document, in a direct and obvious way. By contrast, there is no such direct link between mouse (or touch) and the document, only a transient link via the document's current presentation. With a keyboard, you can operate on text; with a mouse, you can only operate on pictures of text.
- KirinDave 9y ago> By contrast, there is no such direct link between mouse (or touch) and the document, only a transient link via the document's current presentation. It need not be this way. It's simply an utter lack of imagination on part of modern peripheral makers. I had a touchstream keyboard and after a bit of work I had emacs integration that was absolutely fantastic and involved semantic gestures. There is nothing fundamentally flawed about suggesting that gestures could be semantically meaningful.
- deleted 9y ago[deleted]
- jlouis 9y agoHaving spent a lot of time in emacs, vim and plan9's acme(1) editor (which uses the mouse heavily): The speed is about the same for most work. The time spent thinking is the major task which happens, so the time it takes to edit your buffer is not that dominating. When you have unique reordering which you only have to do once, the mouse in acme(1) tend to beat emacs/vi. One subtle trick is that the acme cursor sits "between" characters, not "on" a character, which makes selection of text much faster. Also, if you click on eg, { it marks to the }. You need a precise mouse and some acceleration to make mouse flicks possible, but then it absolutely rocks. On the other hand, whenever you have a repeated task, you are better off programming a solution. Here macros or vi move-style comes in handy. In acme(1), you use the built-in command language (which is close to the sam(1) command language). It is a bit easier in emacs/vi I think, but only a bit. disclaimer: I didn't really time myself, so there may be a perception mistake in these observations. But I don't find one method vastly faster than the other. In a typical editing session, the mix of tasks makes sure that on average the editing speed is about the same. OTOH, I have enough muscle memory for emacs-fluency, so a newcomer would probably be faster on the mouse than in a keyboard-binding-experienced vi/emacs programmer.
- js8 9y agoAnother problematic point that perhaps should be raised about those studies: Most of today's software is optimized for usage of mouse, with keyboard only as afterthought. But we should compare software optimally designed for the use of the mouse with software optimally designed for the use of the keyboard (e.g. Vim). Though I am not sure former really exists - which is perhaps a testament of how slow mouse actually is. :-)
- Qwertious 9y ago>Most of today's software is optimized for usage of mouse, with keyboard only as afterthought. And can I add my personal pet peeve: Keyboard COMMANDS are referred to as keyboard "shortcuts". As if using the keyboard for anything other than typing text is somehow an invalid usage, and the real way of doing it is with a mouse or something?
- jlebrech 9y agoeyetracking and AI should be able to replace the mouse.
- mnm1 9y agoAs someone diagnosed with RSI, I'm looking for ways to type and use my track pad slower and less of the time. I find that other than text chatting with my co workers, nothing really depends on me being able to type fast. I don't know what kind of programming work the author does, but I find I have to type/track pad very little even for large refactorings and slowing down from about 80wpm typing to probably half that hasn't really affected my working speed. I'd say I'm at least half to a quarter as slow both typing and tracking (used to use a trackball which was faster than any track pad or mouse) and it's affected my overall speed less than 10%. There are many ways to automate and avoid a lot of repetitive actions in programming which also help quite a bit.
- moomin 9y agoNever mind whether it's faster. Is it more comfortable and less likely to give you RSI? Grief yes. Ironically, this is especially true for things muce are faster at. Drag and drop is fast, but it kills your hand.
- tutufan 9y agoSpent some time on this a while back, and even wrote a driver that let me use a game controller as a complete replacement for my keyboard and mouse. Interesting but not really successful. One key takeaway: The input bitrate that a competent typist can get from a keyboard is quite high. As a guess, it might be 8x higher than with a gamepad or mouse. And as an additional detail, I've had more RSI issues with mice than keyboards over the years, even though I use emacs.
- had2makeanacct 9y agoOkay that was quite hard to read, any reason for no formatting at all?
- joeyespo 9y agoAgreed. Been using My Style [1] for readability on his site. Even this small tweak helped: body { max-width: 768px; margin: 32px auto; font-family: Helvetica; font-size: 20px; } [1]: https://chrome.google.com/webstore/detail/my-style/ljdhjpmbnkbengahefamnhmegbdifhlb https://chrome.google.com/webstore/detail/my-style/ljdhjpmbn...
- Morantron 9y agoIf you want the fastest way in existence to copy/paste in terminal https://github.com/morantron/tmux-fingers https://github.com/morantron/tmux-fingers
- mindleyhilner 9y agoSmall typo: "hunt-and-pack" should be "hunt-and-peck."
- nobodyorother 9y agoI'm surprised nobody mentioned Keystroke Level Modeling (KLM) or CogTool (github.com/cogtool/cogtool), which divides up UI interactions into discrete actions with specific times. It gives a pretty reasonable estimate overall, and is great for comparing between multiple competing concepts/usage-models.
- Karrot_Kream 9y agoAn article is posted bemoaning the lack of rigor in mouse and keyboard speed measurements. Instead of posting anything of rigor, tons of posts are done about more anecdotal input experiences. I love my keyboard-heavy emacs workflow, but come on, at least pretend to read the article or seek some rigor in things.
- rjmill 9y agoMy mouse cursor is in a different place every time I reach for it. My keyboard is always in the same place. Sure, if I'm using a cursor with my keyboard, I'll have the same problem, but at least the cursor tends to be in the exact same spot I was already focusing my attention, ie where I was just typing. If I'm executing an action with my mouse, the path between my cursor's current location and where I need to click is almost always different. I have to move my attention to the cursor, and I can't just rely on muscle memory to do the command. If I'm executing an action with a hotkey, the path between the home row and the keys I need to hit are always the same. If it's something I do frequently, it's in my muscle memory, and I don't have to shift my attention away from the task at hand. I don't care much about the speed at which I can accomplish a single action (as long as it's not unbearably slow), but I do care about having to shift my attention away from what I'm doing. If I'm doing something that requires a lot of typing (eg, programming), I'll try to do as much as possible with the keyboard. If I'm in a novel environment and have to rely on visual cues (eg, surfing the web), I'll do most things with the mouse.
- marcell 9y agoKeyboard can be a bit slower, but I find that moving to the mouse interrupts my train of thought. I'm not sure why but it seems to engage a different part of my brain that pauses what I'm thinking about.
- dllthomas 9y agoAlso worth mentioning, when it comes to picking or pointing from the keyboard, is keynav. It lets you do a binary search in screen-space, which can be pretty fast (though probably slower than the mouse if your hand is already on it).
- tincholio 9y agoAbout this Tog guy, I've never heard of him before, but for all his claims of doing UX research, he has 0 peer-reviewed papers, and the "experiment" about the 'e's and the pipes is so laughably bad, that I wonder what's the point in taking anything of what he says seriously.
- InTempWeTrust 9y agoThe problem is the whole mouse physics.. if you could look at a point and then click.. that would be a dream.
- MichaelMoser123 9y agoMy big problem in productivity is multiple cut and paste buffers in vim; i would love to see a good way to use that.