Hacker News new | past | comments | ask | show | jobs | submit login
Coding Horror: The Keyboard Cult (codinghorror.com)
134 points by Anon84 on Oct 23, 2010 | hide | past | favorite | 108 comments



So, Jeff Atwood can't take me seriously as a programmer: As he puts it, when was the last time you saw a hunt and peck pianist?

But I'm a composer, not a pianist, and technology has been liberating composers from the need to be expert performers at least as far back as since Apple funded a MediaLab project to give grade school children computers to perform music so that they could compose music a long before they could learn to play their own compositions.

Then again, he may have a point, I do a lot of whimsical programming. Maybe if I took programming more seriously I'd learn to type. And learn to use an IDE. And learn to push dirt:

http://steve-yegge.blogspot.com/2007/12/codes-worst-enemy.ht...

:-)


Keyboards are an impediment to your work. Programming is thinking and creating, but, unfortunately, you need to get your ideas into the computer somehow. Ideally our brains could connect with a computer so that we could instantly share ideas and feedback. Instead, you have to impart your ideas onto the computer by mashing its rubber buttons. If you don't do that, your ideas and creativity are nearly useless.

So it makes sense to make the button-mashing as optimal as possible, so that there is no friction involved in programming. A few minutes of practicing new entry methods (using the right fingers for the right keys, etc.) eventually results in a less annoying interface between your brain and your computer. And that makes programming more productive and enjoyable.

(Interestingly, this post would have been much better if I had bothered to connect my HHKB to my netbook. Using the shitty netbook keyboard made me want to get commenting over with as quickly as possible. Make this a habit, and your shit keyboard results in shit work. For me, anyway.)


> Keyboards are an impediment to your work. Programming is thinking and creating...

This at first sounds true but really isn't; programming is not pure thought: it's thinking and implementing and seeing how the implementation goes and trying a different way, having new ideas, etc.

You can't "think" in a pure vacuum; you need to bounce ideas off something real.

I do some woodworking and let me assure you the "ideas" that I have before starting a project get changed a lot when confronted to the reality of wood and tools.

After a while you discover that, to some extent, you end up making your own tools, that fit you and the projects you like to do.

Programming-wise, that's also why I dislike IDEs: they add an additional layer between you and the object you're working on; it's like woodworking with gloves (impossible). And they don't contribute much; they advertise "speed", but the slow part is thinking, not typing!

- - -

(I'm typing this on a daskeyboard with blank keys, I've used it for two years, it's fantastic.)


Programming-wise, that's also why I dislike IDEs: they add an additional layer between you and the object you're working on

This, for me, is totally untrue. The IDE I use, IntelliJ, is the best programming tool I've ever used, bar none. And yes, I used Emacs for 5 years. It's amazing precisely because it adds an additional layer (the AST). That layer (the AST) is what I work on, with amazingly complex semantic instructions. I haven't programmed in text for years.


The IDE I use, UNIX, is the best programming tool I've ever used, bar none.


I can't judge your specific situation, but your comment reminds me of the adage "Never send an IDE to do a programming language's job."


So, Jeff Atwood can't take me seriously as a programmer

Thankfully this is hardly a slamming indictment.


No, but at the same time, I wonder if being a terrible typist is a little like riding my bike with a rusty chain. Maybe my riding is more about where than how fast, but whatever my speed, there must be a decent return on being more efficient.

If I typed more quickly, maybe I would have more time for thinking. That might be very important.


Our VP of engineering, who I respect a great deal (Basically has excelled as a programmer, developer, architect, manager, and executive - and has created a _ton_ of high quality code in the last five years) is adamant that his developers can type 30+ WPM - the good news is that's a pretty rare person these days who can't touch type, particularly for the younger developers - but he did have a "hunt-n-peck" developer who he pretty much demanded they learn to touch type, even if it meant spending an hour each day improving their skills.

I tend to agree - when a developer is on a tear, and creating great code, the _last_ thing you want to have standing between them and their masterpiece is a 20 WPM habit.


What I don't really get is: how can you even become a good programmer without getting really good at typing as a side effect?

I never learned how to type, I just got good at it without trying since I've been using computers for >20 years.

Surely most if not all good programmers have at very least been using computers for a long while before becoming good programmers?


I totally agree. I took one typing class in high school for a quarter or so. It taught me the general idea, but I still looked at my hands and did a lot of hunting and pecking, just with more than two fingers.

It was when I started college my freshman year and started to spend a lot of time on AIM talking to old high school friends that I really learned to touch type. There's nothing like having to keep up in a conversation to make you type more quickly.

Seriously, just putting your hands on the keyboard correctly and then continuing with a hunt and peck method, if you're typing a lot for your job, will certainly lead to being a good typist within a few months. It doesn't even take conscious effort.


My high school insisted that everyone take a typing class - it made sense, rural Texas schools were finally realizing that computers might be important at some point.

I'd been dicking around with computers for about four years at this point, so I asked them if I could come in and take a typing test to be exempt. They sat and watched me type, and didn't even bother looking at my WPM before they let me skip the class.

I don't really know how you can use a computer on a daily basis, and not learn to type quickly. It's like driving a stick shift for years, and still glancing down at the knob to see where 2nd gear is.


I don't know where this fits, but I used to hunt and peck at over 80 wpm* . I touch-type on dvorak now, I don't care about the speed (roughly same, clearly fast enough), but it feels much better than hunt-and-peck or qwerty touch typing.

* Hey, I taught myself to type as a kid, playing text adventure games and typing in BASIC programs from library books.


I doubt there was much 'hunting' going on if you were really doing 80wpm. I'd bet you had some kind of hybrid form going on; anybody who types that fast is usually reaching for the next letter before they finish stroking the current letter.


An hour a day? Honest question, is it really that hard?

I learned to type with all 8 fingers in about 30 minutes a day for about 2 weeks. I think I just used GNU Typist. Most efficient time investment of my entire life. Is my experience different from others?


Something being able to type fast buys is you less friction when experimenting. The act of typing is not a mental hurdle to stop you from following through on "I wonder what it would be like if..."


A lot of horseshit is talked about how quickly you can type.

Fundamentally, I assert it's really pretty unlikely that your throughput at the keyboard is a limiting factor to your productivity when writing code. It certainly is limiting if you're transcribing speech to text. To code: it's doubtfully reliable as a measure unless you're Rainman or worst case "headbanger" coders who substitute knowledge of what they write for knowledge of the result of what they execute.

Remember, you could always see someone post about how lines of code produced does not equal productivity. There's a recurring post about the guy who considered productive being reducing the size of his code.

Don't get me wrong, typing is a useful skill and good on those who master it at a high level. However it's no substitute for 'working smart' for e.g. :

Writing scripts when you need to.

Knowing your editor inside out.

Knowing your SCM (of choice) well.

etc.

At best I suspect the 'don't type fast' thing just seems to be indicative of the duffers in the industry who are just sucking a paycheck out of your company. Don't let it fool you that it's a definitive metric of software competency though.


You're right. When I'm writing code, I often don't find the typing to be my impediment.

My first ideas are usually not quite distilled, and after the initial burst (or brain fart) of code, I spend a lot of time reducing/refactoring the code.


If I typed more quickly, maybe I would have more time for thinking. That might be very important.

Maybe, but I don't personally buy it (as a fast typer myself). I think programming shares a lot with writing where the editing is more important than the first draft. In my experience, typing speed doesn't significantly affect the quality of a writer's work, though perhaps it does the quantity.

You are proof of this. From what I've seen, your writing is good and goes down well on HN, yet you've identified as a "slow" typist. I don't see why your code should be any different.


I think being an efficient typist is a vast improvement.

- You don't get constantly interrupted looking for a key. Seriously, remember what this was like before you could type. Being able to type without thinking about it must free up a lot of mental energy and allow you to concentrate.

- If typing is easy, you tend to write more. You don't care if you have to rewrite a function. You don't mind using longer, more self-documenting variable names that make your code clearer.


For me, it had a great impact. Typing faster means that I'm now more inclined to review and rewrite my work. Plus, writing more helps me write better, over time.


I'd be curious to know your actual typing speed. Maybe you're not that slow?

Under 30 WPM, learning touch-typing should be a top priority. (Use Dvorak if you type mainly in English, it's 4 times as fast to learn than Qwerty.) Not having to lower your eyes and your head any more is so much more comfortable that it quickly becomes addictive. Of course, you will be slow at first, but you can get your speed back in two weeks (maybe even faster if you choose a Dvorak layout).

50 WPM (my speed, getting better over time) feels pretty comfortable, though Id' like to type a bit faster. If you hunt-and peck at that speed, touch typing will only buy you the comfort, but even that may be worth it.

90WPM is the speed of speech. Any faster is for contests.


90WPM is the speed of speech. Any faster is for contests.

Speech speeds for speeches and books on tape, where the listener can't interrupt and ask you to repeat, are typically around 150WPM http://www.humanfactors.com/downloads/aug00.asp but normal conversation is up around 170-280WPM http://itre.cis.upenn.edu/~myl/languagelog/archives/003423.h... and court reporters need to be able to transcribe speech at over 180wpm and typically 200wpm http://www.thehighschoolgraduate.com/editorial/DF/courtrepor... .

Try reading aloud something you're typing as you're typing it. You'll find that 90wpm is very slow speech. The only reason speeds like 50wpm and 90wpm can feel comfortable is that the actual process of typing is distracting enough that we don't have time to get bored.q


OK, thanks for the correction.


I probably spend less time thinking thoroughly because I can type fluently. If I typed slower, I'd have to be more confident that what I was typing was reasonable. It's probably just a discipline issue on my part.


When I.....'m writing ... I make lots of pauses .... to.. give.. me.. time.. to think.

In ......... my opinion it's impo..r..t..ant to make ... these pauses.. when programming .... otherwise you might ... miss ................ something important.


Perhaps while hunting that next key, you'll have realized a better solution.

Perhaps knowing the eventual time you must spend to type causes you to think more before you begin typing...

Who's to say?

That said, I can't imagine those blog posts come out quickly :)


I type code (and spoken language) pretty fast (upwards of 90wpm) using a weird style that isn't traditional touch-typing (I only use my index fingers and my thumbs) but also doesn't involve hunting and pecking because I have enough muscle memory and experience with different keyboards to intuitively know the distances between each of the keys I want to hit, and thus I can do it without looking down at the keyboard or even thinking about the process at all. So I guess I'm "fast enough" for the Atwoods and Yegges of the world that think you have to type fast to be a great programmer.

However... Having said all of this, I do my best programming in the the 20 minute walks I take after getting up and walking away from the code for a while, not while I'm actively sitting at the keyboard typing stuff in. At the point in which I'm typing, I'm basically just dictating my own previous thoughts into a text editor and while it might make me marginally overall more efficient to do this faster, it is not at all the bottleneck of my entire process, it isn't even one of the top 25 hotspots.

Given my own process, I've never understood why anyone could possibly attempt to make a connection between input speed and quality. I could type one line of code a minute and typing still wouldn't be the botttleneck to me creating great code and I find it hard to believe that is true of anyone else if they are really being honest about their overall development process.


If you can't touch type, try switching to Dvorak or one of the keyboard layouts. You will of course have to learn the new layout, but you won't have to learn to touch type. It's so rewarding that part will happen naturally. There's no reason for your fingers to leave the home row, so they won't. It's that simple.

Note I'm not saying this because it's just that much more awesome or whatever, this is a real concrete change I experienced. I wasn't "hunt and peck" but I was all over the board and thought stodgy typing rules were silly. Right opinion, wrong reason; the rules are nonsense on a QWERTY board, but make sense with sane layouts.

Whether proficient QWERTY touch typists should switch, I don't know, but the value proposition for someone who isn't really proficient is a lot more compelling. Hunt and peck typist's brains are simply correctly reacting to the lack of utility of using the home row correctly, and if you fix that problem the rest will just flow.


The problem with switching to Dvorak is the same problem I see with too much customization on an IDE or a word processor. Few people I know use one computer only. So no matter how adamantly I insist a Dvorak configuration, there will always be situations in which I am obligated to go QWERTY.

It's not worth it to me to become proficient with Dvorak, even if I can see wins in typing speed and accuracy, because I'll incur ten times the frustration when forced to perform routine operations on a friend or coworker's computer.


> But I'm a composer, not a pianist.

Perhaps Atwood's analogy isn't the best. Programmers are the composers and the computer itself is the pianist, running the composition. However, you need a keyboard to compose!

I don't think my typing really got fast until I started using instant messaging. When it comes to programming, I could always type a lot faster than I could think. I'm probably typing this message significantly faster than I'd type any code.


To rebut your Steve Yegge post with another Steve Yegge post (his opinion, at least in 2008, was closer to Jeff's than yours): http://steve-yegge.blogspot.com/2008/09/programmings-dirties...


I think you're reading too much into it. It's just that most programmers have gotten to the typing level where ideas flow through their fingers basically at the speed of thought, and anything that blocks that drives you insane.


From what little you know of me, do I strike you as someone who is driven insane by the fact that I can't transcribe my thoughts as quickly as I can imagine them?

And if I was driven insane by the impediment of a keyboard, do you think I would suffer it gladly?

Which is my way of saying, I haven't been driven insane by it and I don't perceive that my ideas are suffering in a traffic jam trying to get out of my brain and into the computer.


I'd hate it if my brain had slowed down to the point of being blocked by my fingers..


I think people often pre-judge others on their typing ability like some judge the intelligence of someone they meet based on proper grammar, accents and speech differences. For example someone with a slow southern draw to their speech, relative to the listener, is often assumed less intelligent.


I think people often pre-judge others on their typing ability like some judge the intelligence

You're likely correct, and I've found myself doing this with some of my coworkers, however, over time I've come to understand it for what it is: There are many occasions in coding where I do not find it necessary to type quickly. I can type at the speed a typical person speaks -- and accurately -- and without effort (including symbols, numbers and other elements that are uncommon in spoken language but common in programming languages). I have never met an effective developer who is a "hunt and peck" typist, but I've met plenty that land in around 30 wpm.

The distinction, I think, lies in how much effort it takes our 30 wpm individual to produce 30 wpm. Touch-typing (which I define as being able to type without looking at or for the key you're looking to hit) means not having to actively "think" when I type. I know where the keys are by instinct/muscle memory. I can keep my eyes on the screen, or on my hand-written "napkin note", or on my white-board (and often a mix of the three) and transfer that information to implementation without perceivable interruption.

Like it or not, the keyboard is a bit of a tool of the trade. That doesn't mean you have to be a perfect typist (I don't use my pinkies to hit the letter "p", and until I purchased a split keyboard, I always reached with my left for the "y"), but a reasonable analogy would be one of a chef who can't properly handle a knife. Successful chefs don't always cut the way you're taught at the CIA (or wherever), but they handle the knife with precision and accuracy (and without effort or injury). They don't have to think about it, they just know what the finished ingredient is going to look like when their hands are done with the motions.

For example someone with a slow southern draw to their speech, relative to the listener, is often assumed less intelligent.

I couldn't resist responding to this one: I remember having a calculus teacher with a serious Southern drawl and I recall thinking he was very unintelligent. It was an error in judgment because I could barely understand him in a lecture setting and struggled in his class as a result (this was remedied by taking advantage of office hours and tutors). After a while I got used to it and it had a sort of accidental side-effect. I had to actively listen to understand him which resulted in my actively paying attention. He was a brilliant individual, and a gifted instructor (as well as a patient one ... willing to explain things one-on-one with a student (me) who was struggling at the time). Maybe teaching with a serious southern drawl in a northern state made him less effective, or maybe not. I'm not sure. Food for thought.


I long for a mechanical keyboard about as much as I do a typewriter or non-power steering and I used to have one of those Model Ms back in the 90s! I'm a writer more than a programmer but the new "thin" Apple keyboard does me proud for hours on end and is only marginally less comfortable than the Microsoft ergonomic keyboard I used to enjoy.

This is yet another "different strokes for different folks" scenario, though I love the irony of Atwood not taking other programmers seriously considering how often he gets reeducated by Spolsky on their podcast.


I find the new thin apple keyboards to be horrid, and it's not often I see people praise them (they're universally disdained on keyboard snob forums, even among dedicated Mac users). Have you tried any boards with Topre or Cherry browns/blues switches?


I've never seen anything but praise for them. My mac keyboard is the best keyboard I've ever typed on. The current crop of macbooks also have extremely good keyboards.


I'd rather not belittle anyone for preferences which admittedly, like music choices, are subjective. But I truly loathe the Mac keyboards, and I'll tell you why. It has nothing to do with platform bias.

Mac keyboards are not designed for touch typists like me. There is no contour to the keys, they are flat and too large and make your hand move too far. They are also not sufficiently actuated, as Atwood points out in this post. They're made for people who hunt and peck and mash the keys using their biceps instead of their fingers. Since that's not me, I hate them. They have an "iffy" actuation instead of a decisive one.

They'll take my IBM Model M and Unicomp when they pry them from my cold, dead, fingers.


I'm a touch-typist. (I studied piano in my youth for 12 years, and now on the computer keyboard I can switch back & forth between qwerty and dvorak without much trouble, although I prefer the latter.) I thought that I would hate the Apple keyboards, and for exactly the reasons you mentioned (lack of contour, not sufficiently actuated, too large...) but it didn't turn out that way. My touch-typing wasn't terribly dependent on any of those properties.


Completely disagree. "Hunt and peck and mash the keys using their biceps"? Way to paint anyone with a different opinion as cavemen. ;-)

I used to be in your camp (started with the original Microswitch MIT-AI Lab keyboards decades ago, which are the best mechanical keyboards ever made, bar none), but I've become very fond of the thin Apple keyboards (and Apple laptop keyboard), which I find quite comfortable for fast typing.

The main thing is the short throw and light touch needed to produce letters with less finger movement and strain. (Just the opposite of what you posit with your biceps comment.)


I think you're reading too much into it, I wasn't using hyperbole and certainly wasn't painting hunt-and-peck people as cavemen (or women). I was just pointing out that touch typing uses less of the forearm and more finger movement.


I touch type and I want as little "action" in the keys as possible as it allows me to type faster. But I'm the same with guitar too..


I was going to switch to an Extended keyboard type of clone until a friend of mine told me that the flat keyboards were pretty good.

When I'm peaking, I can hit around 80wpm (but not prolonged, at which point pain sets in), and I've got nothing but good things to say about the Mac chiclet keyboards.

I think the thing that makes me -not- hate them is that there's a solid banging sensation at the bottom of the pressing motion, as opposed to the mushy feel I've gotten from my Windows laptops in the past.


Hm, really? I've heard some fair praise for them. I prefer my keyboard (it has brown Cherry switches) but the thin Apple keyboards seem a step above standard membrane switch keyboards (this is the catch) once you get used to them.


Then why don't you buy a Unicomp Space Saver or Customizer? Those are modern Model Ms, made on the same equipment with the same feel: http://jseliger.com/2008/05/07/product-review-unicomp-custom...


I find myself wondering if there are "cheap" membranes and "better" membranes. My wife's netbook keyboard is terrible and mushy, not that it matters to her, but my Dell Studio 17's keyboard is relatively snappy and I like it. It feels like the Apple keyboards, though it doesn't have the visible separation between the keys. I mean, I suppose it could be better but it would be an awfully incremental improvement.


I'm a recent mechanical keyboard convert. Bought a Customizer 101 [1] a couple months ago and was so pleased I ended up buying a second one (one for work, the other for home). I can type for much longer now before reaching any kind of exhaustion in the hands/wrists. Recommended for the RSI-prone, as long as the people around you don't mind the noise too much.

---

[1] http://pckeyboards.stores.yahoo.net/cus101usenon.html


All the keyboards he pictures are ergonomic nightmares.

+1 to jfb's recommendation for Kinesis Advantage. Their ergonomic designs are well-made and durable. (My first lasted seven years; still on my second.)

Doesn't hurt that it gets a lot of attention. Sort of like a sports car for your fingers. :)


I really wish there were more ergonomic keyboards out there. The only one that is viable anymore is the MS Ergo 4000, which, while nice, is not ideal. I would prefer a nice mechanical ergo, but I would also prefer a normal ergo keyboard that was more my style; I never use the zoom slider or most of the other extra buttons on the keyboard. It takes a lot of space for all of those buttons and I would like to buy an ergonomic keyboard that is better, but this is basically the only choice.


http://www.goldtouch.com/p-65-goldtouch-adjustable-keyboard-...

I have one of these at work. I switched from the Ergo 4000 to this, and I like it quite a bit. (There's a Mac version, too.) No idea whether it's a crappy keyboard by Atwood's standards.

Beware: there are trade-offs. For the Mac keyboard, you'll want to map Caps Lock -> Ctrl. I don't know what's optimal for the PC keyboard; I run Linux and don't use the Windows key.

Also, neither has a numeric keypad. There's a Numlock key, a la laptop keyboards. I don't miss it but some people do swear by them.

I'm assuming you've also ruled out Kinesis. :) I'm too scared to splurge on one but I've heard they're fantastic.


I run Linux too but the Windows key ("Super" or "Mod-4") is the activator-key for all the shortcuts in my window manager, awesomewm. I also really love numpad and wouldn't spend much money on a keyboard that didn't come with one. :(

Anyone know why we see so few mechanical ergos? I would think keyboard snobs would be wary of RSI...


Ha! I used awesomewm for a while, myself. Alt was the default in Hardy, so when I upgraded to Lucid, I remapped it from Win to Alt.

No idea why there aren't many mechanical ergonomic boards, though. I'm actually surprised by the extent to which people type on regular keyboards.


I sometimes wish there is one with a special arrow button move to the next word instead of next character. Will help a lot with typing and programming.


Emacs.. META-F and META-B do just that. And META-D removes the entire word. Replace CTRL for META and you do one character instead of one word.

That mapping alone makes learning Emacs bindings worth it. Most editors can be configured to honor them.


You can configure any readline-enabled shell to do this.

I wrote a post about it recently: http://semmyfun.blogspot.com/2010/10/my-config-secrets.html


It is facinationg how people get stuck into one idea and can't get out of it.

Why would anyone want to type on a touchscreen the same way he used to do on a keyboard?

I am actually thinking to make an ide for the ipad that eliminates typing of letters one by one. Getting your code into the machine should have much more freedom, than stooping in front of a keyboard and typing each word and symbol after another. There must be some next level ui to autocomplete/typing in the world of multitouch.


I simply love typing on the keyboard of my MBP. Does anyone know what class of keyboard that is?


I think that it's a scissor-switch keyboard[1].

[1] http://en.wikipedia.org/wiki/Scissor-switch


I'm not sure if the keyboards on a MBP and normal MacBook (what I have) are the same, but I'll concur if they are because I enjoy typing on my MacBook.


Touch screen typing is NOT THAT BAD. I type 65 wpm on my iPad which is defeintely fast enough that I can rely on it to do "real work".


In terms of pure words per minute, I agree with you to an extent, but I also much prefer to type on a keyboard when it is possible to do so.

My problem with touchscreen typing isn't so much related to how many WORDS I can type in a given time, but rather the annoyingness of the modality of the virtual keyboards combined with unintuitive chording for things like standard keyboard shift, ctrl, etc. (I realize the better virtual keyboards do have 'solutions' for the chording issues but I've tried them and found them all severely lacking).

Having to switch modes to do symbols, numbers, etc, is a real flow-breaker and ultimately means that while I can type informal texts and emails fine on a touchscreen, I find it excruciating to type mostly-grammatically correct English on them. I wouldn't even attempt to code on one for similar reasons.


This really need not be the case. With practice I have become quiute proficient typing the common symbols and all of the numbers. Instead of a one-tap character it is a two-tap character, that's all.

(quick iPad tips that are a huge help: swipe from right hand number key upwards to the exclamation/comma key to type " ; swipe from the right hand shift key to the question mark/period key to type a period)


I recently learned that Kinesis headquarters are close to Seattle (in Bothell) and have a showroom. I'm going to visit over lunch someday - I'm not ready to shell out $300 for Advantage without trying it first .


I have an old mechanical keyboard of sorts that I use... I am currently typing on a fairly old Packard Bell keyboard that has individual plastic switches. It is not the best there is, but it works well... so that is what my normal keyboard situation is.

but what interested me most was the thoughts on how using touchscreen devices really affects input patterns. I have an iPod Touch that I often use to surf the web... usually Hacker News in Opera Mini in fact. I can type fairly fast on the device as well... I have timed myself at 80wpm vs 120wpm on my normal keyboard. From time to time I have even used it to type serious things, such as a few page long history paper. It is never pleasent though. It feels like an absolute chore of utter concentration to type fast on the touchscreen keyboard. It's convinient enough to type a few short sentences here and there, but whenever I go type anything lengthy I cringe at the fact that I have to type there. I cannot imagine having something like the iPhone as my primary phone because of how much texting that I do (I chose my non-smartphone simply for having the best possible keyboard). I really do wonder how that will affect how people think of data.. if we move more and more to devices where text input just isn't as nice as on a keyboard, such as iPads and phones like the Droid X and iPhone, for our computing needs, are we going to be less likely to do serious interaction?


I consider myself to be something of an input device dork (you can pry my MX518 from my cold, dead hands), but after trying a couple of the MS ergo keyboards and a few other things, I've found that the Comfort Curve 2000 (MS' cheapest keyboard) seems to work for me best. Everyone seems to be all about the clacky mechanical or ergo boards, but I love the CC2000's gentle curve, and the wide, low-throw, near-silent keys. I feel like I can really fly on the thing when I'm typing, and it's spill-resistant to boot.


I also think that touch screen keyboards are crippling, but it seems that most non techies don't type fast enough to care anyway. So maybe keyboards will end up being a specialist tool?


Add every secretary and administrative assistant to that list. The big volume typing problem with touch screens (other than the constant "shifting" to get other keys (e.g. Numbers on the iPad)) is the lack of movement which results in more stress on the fingertips. Not to mention the lack of contours to tell where fingers should be placed.

I do think it might be interesting to allow the word prediction to be system wide on desktops / portables.


For me the biggest factors are the lack of physical response (although the mini vibe on Android helps here), and the way touch screens can get overloaded if you type too fast. On my keyboard I can type hella fast, but if I tried typing like that on a full size touch keyboard, even if I hit every key perfectly, the touch screen would get overloaded and miss letters.


Hmm, this is not the case on the iPad: many people are able to type at 100wpm+ on the it.

How fast do you mean?


I use and endorse the use of the Kinesis Advantage keyboard; I have two (one for home, one for the office) and I love the things. I don't get RSI pain in my joints any longer, a development that correlates (who knows about causation?) to my adopting the Kinesis and switching mousing hands, about ten years ago. I used to rock the Model M, and I still love it, but my favorite keyboard, at least from an aesthetic perspective, was the Apple Adjustable; I loved that weird-ass thing.


I'm a fan of the Kinesis too: http://jseliger.com/2009/07/20/kinesis-advantage , but I'm not a huge fan of its price. But considering how much time I spend at the keyboard, I can deal.


On mechanical keyboards, Razer is bringing this puppy to the gaming masses (and the rest of the tactile feedback enthusiasts): [ http://store.razerzone.com/store/razerusa/en_US/pd/productID... ]. If you must combine some ultra-geekery, including n-key rollover even when connected via USB, with futuristic looks, it is a top-notch offer.


How does this compare to the Das Keyboard in terms of pressure required on the mechanical keycaps?


I would bet they are the same, as they both utilize the Cherry MX Blue key switches; 4 mm travel distance, key press registers at 2 mm, needs 50G actuation force.


I use a standalone ThinkPad keyboard (complete w/ pointer nub) and find it very comfortable. It's also nice and compact since it doesn't include a number pad.


I've worked with someone who looked at the keyboard when he typed, and overall wasn't a very fast typist (I'd estimate < 50 WPM). He made frequent use of tab completion and mouse-based copy-pasting. [Although he didn't use them] there's also double-click and double-click-and-drag copying, and the "features" of IDEs.

He produced code of quality on par with the rest of the team, and I never thought of him as having a final-product throughput less than the rest of us [who could type faster].

It's true that you can't hunt and peck and be even just a mediocre pianist, but performing music necessitates keeping tempo -- you must actuate your instrument at the right time, and poor mechanical skill on your part has direct and significant impact on the quality of the music. There is no such analogous requirement in coding, other than perhaps deadlines -- but that is obviously on an entirely different scale (no pun intended).


Strange that Atwood only recommends the Realforce 87U. Although it is my favorite (and primary) keyboard, the other Realforces are just as good. The 86U is nice, as are the 103 key variants. All have the same keyswitches and variable weights, and all have very durable keycaps. I also have two Happy Hacking keyboards (which are Topre switches, but without the Realforce's variable weighting), and their keycaps are also very durable. I damaged one once by an aggressive washing session (actually, using my hairdryer on it), and was able to order a complete replacement set. It's nice to be able to buy replacement parts when it breaks.

Anyway, Topre = love, no matter which one you get.

(Oh, and one thing... modern mechanical keyboards, Topre or otherwise, are nothing like those Model Ms from 80s. The Topres have finger-saving 35/45/55g variable weighting. The Model M actuation pressure is over 80g!)


How do the various mechanical keyboard mentioned here compare to an IBM Model M keyboard? Are they as loud, etc.? I find typing on my M very satisfying, but the volume truly is a problem, and I think even the weight of the key presses might be a problem for lengthy typing sessions.


Moving to a buckling-spring keyboard (similar action as the Model M) relieved a great deal of forearm pain for me. I am naturally a furious typist, and the increased resistance seems to help.


I wonder if this is related -- it seems that people who wear shoes with less padding (or no shoes) are less likely to get certain types of injuries. With no padding, we strike the ground carefully. Wearing cushioned shoes, we strike the ground with full force.


I use a Unicomp too. I actually don't think they increase resistance, they increase actuation and positive response. That is what reduces RSI in this case.


I have both a model M and a Unicomp Customizer. They have a slightly different feel, and are equally noisy (not that it's a problem for me), but they are both great keyboards.

Before switching to those, I experienced several problems to my hands and wrists, pain etc.; now the Unicomp is my main keyboard and they vanished. It is really a great piece of equipment.


I have a model M as well and I love it. It feels amazing to type on, but yeah, I can't use it to take notes during a phone call/meeting, or if I'm doing anything where I also need to hear what's going on in the background.

Still, it's worth the trade-off for me, because I find it so comfortable to type on. I bought a Mead 5 subject notebook for meetings.

I work from home, too, though. I'm sure if I worked in a shared office space, my co-workers would be ready to kill me... but then again, on the plus side, due to its mass and solid construction, the Model M is probably a viable weapon for self-defense, and would likely still work just fine afterward.


I recently switched from a model M to a Das Keyboard (not the silent edition) and found that the key presses are not as satisfying, but that it emits a more acceptable level of volume for working in a crowded office. Probably 70% volume as compared to a Model M.

After about a month of using the Das Keyboard I started getting some RSI issue which led to me starting the process of switching over to a Kinesis Advantage (the initial learning curve for this keyboard sucks). I really really wish that the Kinesis had level of tactile feedback closer to that of a Model M or Das Keyboard.


I use some junky 4 dollar Microsoft keyboard that came with my system. At least, I thought it was junky, but it has the mechanical switch thing he's talking about (I think? there's definitely no rubber inside here, clickety clack all night long). It has one row of 'media buttons' or whatever that I almost never use. I now actually go out of my way to avoid those kinds of keyboards because all that extra junk is just wasted money.

I used to have a Logitech G15 but that was really more for the cool factor rather than actually having a use for the LCD display (although I really do miss having a button I can press to change between speaker/headphone mode for my sound card without having to dig into Window's audio settings menu every time I plug in or unplug my headphones).


I don't think the typing speed is so important for a programmer as a quality itself. Ok there is all the "interface with the computer" business, but in my opinion here the point is, it's strange that you managed to be a good programmer and not a good typist, because getting good at programming requires typing a lot of programs.

So either you are simply genetically not good typing, so even if you typed a lot, and you are a good programmer, you are still a bad typist, or you did not typed enough and perhaps did not programmed enough to be a good programmer.

Exceptions exist but I think the final possibility of being very good at programming with little programming activity is very unusual and strange.


I wonder why programmers think so much about keyboards. My speed is about 65-70WPM as typeracer shows. I'm pretty comfortable with that and can reach the speed on almost any more or less sane qwerty keyboard.

I don't feel like I will be way more productive even if I reach 100 or more WPM as thinking usually takes more time than typing (this goes for both programming activities and writing documentation, emails etc).

Moreover, as I'm not addicted to some specific keyboard I feel quite comfortable at any desk with any keyboard or laptop and I don't have to carry my keyboard everywhere I go (which seems quite cumbersome).


I think, much like Microsoft before it, Oracle's best products now are keyboards.

They have Control where God Intended It To Be (with the "Unix layout" option), a nice stack of keys to the left and the overall RT-PC layout we use today. X3701A-UNIX is the part#

I also find the 122-key IBM layout intriguing. Unicomp makes one http://pckeyboards.stores.yahoo.net/122keyterkey.html

Those, I think, are the only ones I would consider to replace my obsolete beige Microsoft Natural keyboard.

Those and a more modern take on the Space Cadet, but nobody seems to be doing that.


You mean Sun's keyboard business which Oracle acquired? I hate those, at least the "Unix layout" ones. Some of these are installed at some of the workstations at work. I don't mind having the control where the caplocks usually is, but I do mind having thew caplock where the control usually is. Because we have both layouts I have to constantly switch between them all the time and I have to be careful and watch which keyboard I'm typing at or it will screw me up. It's very annoying.


> I hate those, at least the "Unix layout" ones.

Don't say that. Those keyboards are great. I am thinking of buying a couple in case Larry decides to ax the whole line just because its sheer coolness makes their RDBMS look so meh...

Now, seriously, the added keys are useful (if you can make them do something), like the 122-key I also mentioned. And there is also an element of nostalgia for the golden age of the Sun workstation.


> What happens when people become trained to think of information and entertainment as something they receive and not something they create?

Well, how was it during all those decades when TVs were ubiquitous but PCs were not?


Well, how was it during all those decades when TVs were ubiquitous but PCs were not?

Pretty bad. Cf. http://en.wikipedia.org/wiki/Four_Arguments_for_the_Eliminat...


I've used to type exclusively on my handy IBM PS/2 keyboard ( http://www.dansdata.com/images/clicky/ballboard1024.jpg ). Not only was it a beauty to behold, it was manufactured in 1983, had no performance degradation either since then, or throughout the 5 years we spent together (-circa 2007(!!!)), and had an awesome tactile feedback.

Finally, the ps/2 port gave in to excessive wear, and I switched it to a deck. Still have it in my old room, owning a piece from ancient history :)


I've got a pair of M13s that I use on a daily basis. They're the full sized ones with a built in trackpoint nub in the middle. I wish they were narrower, but I've mostly gotten around that by switching mouse hands.


If it was the ps/2 connector on the cable, many (but not all) of the Model M keyboards have swappable cables, and you can get a new cable quite cheaply.

If it was the ps/2 port on your computer, you can get a ps/2->usb adapter for around $10.

I use a Model M Spacesaver (basically identical to the one in your link, minus the number pad) built in 1992 as my go-to keyboard.


Get a kinesis keyboard and learn to touch-type; it's probably the best investment you'll ever make...

You'll save time when programming, but also when you create the design/requirement/test documents, the help file, the web pages, your blog, all your e-mails, your twitter messages, your IM and Facebook messages, and of course your comments on Hacker News :-)

If you don't touch type, give yourself a good kick in the butt and start now !!!!

An hour a day for a few weeks and you'll save time every time you write something for the rest of your life ...


My netbook LG X130 (http://www.lg.com/ae/it-products/notebooks/LG-netbook-X130.j...) has got the most incredible keyboard I have ever seen. It's easier, way lot faster to write with. May be because it's small, but I think it has a particular precision over the keystroke I hit.

Really an amazing one, not sure what type of keyboards it is, but happy with the experience.


Mechanicals are too loud for me most of the time, but I understand his point. I enjoy a quality keyboard.

I've also never really liked the apple keyboards. It's nice to have some contour to your keys instead of just flat.

Key layout is the thing that kills a keyboard for me more than anything. I've brought home a few keyboards just to find out when I was unwrapping it that the Insert and Delete key rows are goofy, or the arrow keys are all messed up.


Mechanical keyboards are nice, but I think I would go crazy if I worked in an office full of them. I have the small form Deck keyboard ( http://www.deckkeyboards.com/product_info.php?products_id=30) and love how it doesn't have the number pad which pushes your mouse further away.


I use the cheap Microsoft keyboard that came with my work system. My favorite feature is that in exchange for somewhat tedious hour I can dismantle and thoroughly clean the damned thing. I am surprised that there was no mention of cleanability in the article and that it has not yet come up in the thread.


If there's one thing that I hate at most "modern" keyboards, is the fact that keys are a bit smaller and they seem to be more crowded.


The key travel on those keyboards is phenomenal. How do you not injure yourself? Who is still using non-laptop style keyboards and why? :/


Which keyboards are you talking about? Key travel is not the issue, it is the actuation and positive response of the switch that matter.


Any 'desktop' style keyboard with big fat keys that travel down more than a few mm.

I want as little key travel as possible. Typing on a desktop keyboard is slow and tiring.


I'm not sure about your 'desktop' distinction, as many laptop keyboards (the MacBook Pro and many Windows laptops for that matter) have bigger keys than, say, a Model M-type standalone keyboard.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: