View Full Version : Keyboard layouts
flux00
05-15-2009, 12:05 AM
Hi, I was wondering what devs think about using non-standard keyboard layouts for their programming.
I just switched over to programmer's dvorak (http://www.kaufmann.no/roland/dvorak/) because although I knew qwerty was flawed, I recently found out there are modern layouts developed by genetic algorithms, and that's just badass.
Lessons...
http://gigliwood.com/abcd/lessons/
JarkkoL
05-15-2009, 12:27 AM
Typing speed has very little influence to how fast you program, so I don't think it matters which layout you use once you get past the learning phase.
Mihail121
05-15-2009, 12:57 AM
Typing speed has very little influence to how fast you program, so I don't think it matters which layout you use once you get past the learning phase.
+1, I'm using QWERTY for most of my work, QWERZ (ze germanz) for ... uhhh... typing German and bulgarian layout for bulgarian. German layout is PURE terror.
alphadog
05-18-2009, 08:41 AM
I don't think layout matters for programming. Writing? Yes. Coding? No.
Honestly, sounds scary that some of you are spitting out code so fast that an optimized layout would make a difference. I don't know whether to be scared for me because it doesn't matter to me, or for the industry because it doesn't matter to many of you... :)
flux00
05-18-2009, 09:06 AM
It's really not so much for speed as it is for comfort.
And awesomeness.
One regrettable downside is that keyboard shortcuts are usually designed for qwerty.
JarkkoL
05-18-2009, 09:43 AM
I think for true awesomeness you should check this (http://gadgets.fosfor.se/the-top-10-weirdest-keyboards-ever) site or if you got the balls you could even go as far as this (https://www.keyboardforblondes.com/index.cfm?fuseaction=products.demo) (:
alphadog
05-18-2009, 11:55 AM
Actually, the absolute coolest keyboard I've ever seen is this one (http://store.artlebedev.com/computer_add-ons/optimus-maximus/).
With OLEDs for each key, once that GA pauses in its generational scanning and finds a new optimal minima for a programmer's keyboard layout, you can easily remap and type 0.001 words per minute faster.
But, at $1.6K ea, it's once pricey keyboard...
monjardin
05-18-2009, 07:22 PM
Typing speed has very little influence to how fast you program...
I strongly disagree and Steve Yegge explains why (http://steve-yegge.blogspot.com/2008/09/programmings-dirtiest-little-secret.html).
alphadog
05-18-2009, 08:22 PM
Of course. Yegge nails it. You can always recognize a quality developer by the length of their Reddit posts... :blink:
I strongly disagree and Steve Yegge explains why (http://steve-yegge.blogspot.com/2008/09/programmings-dirtiest-little-secret.html).
I agree with Steve but also with JarkkoL...
The choice between QWERTY and say Dvorak has very little influence on the development speed of a programmer. You do, however, need to learn how to touch type.
Personally I love QWERTY. And that's mainly because it's the layout used when programming languages were born. All the symbols used in a C-based language are quickly accessible. I actually learned to touch type on an AZERTY layout, which is the 'standard' in Belgium. But really it's the French standard and there's no good reason to use it in Flanders, the Dutch speaking part of Belgium. Programming on AZERTY is horror. You frequently need the 'Alt Gr' key to access a third character on some keys, and you need the Shift key to type numbers. The only reason the French needed their own layout is because they have some letters with diacritics on them. That was an understandable argument for mechanical typewriters, but on a computer with a QWERTY keyboard configured for International use, you can easily type those with a simple key combination.
Just my two cents.
.oisyn
05-19-2009, 03:56 AM
But really it's the French standard and there's no good reason to use it in Flanders, the Dutch speaking part of Belgium. Programming on AZERTY is horror. You frequently need the 'Alt Gr' key to access a third character on some keys, and you need the Shift key to type numbers. The only reason the French needed their own layout is because they have some letters with diacritics on them.
Did you know there is an official Dutch keyboard layout, too? Pretty much nobody in The Netherlands uses it
http://frontype.com/keyboarding/540px-Nederlandse-toetsenbordindeling.svg.png
And I feel very sorry for the Quebec residents. I was visiting Eidos Montreal a couple of months back, and it turned out that they had to ask the local government permission to buy us some US qwerty keyboards, which was fine because we were foreigners. But otherwise, Quebec companies are prohibited to use any other keyboard layout than Canadian French.
http://frontype.com/keyboarding/540px-Computer-keyboard-Canadian-French.svg.png
Now that's just sick.
JarkkoL
05-19-2009, 07:35 AM
I strongly disagree and Steve Yegge explains why (http://steve-yegge.blogspot.com/2008/09/programmings-dirtiest-little-secret.html).
If it was about typing speed, I could write the entire code base I have spent around ~2 man-years making in a month. Most likely even in much less time. So based on that fact you could say that I spend <4% of my time in typing code thus improving typing speed wouldn't make much of a difference.
And you cropped the obvious part from my post, because I continued "...so I don't think it matters which layout you use once you get past the learning phase"
Quebec companies are prohibited to use any other keyboard layout than Canadian French.
:surprise:
If it was about typing speed, I could write the entire code base I have spent around ~2 man-years making in a month. Most likely even in much less time. So based on that fact you could say that I spend <4% of my time in typing code thus improving typing speed wouldn't make much of a difference.
All typing done during development involves a lot more than just typing the finalized code. Experimenting, debugging, refactoring, etc. all involves a lot of typing. So the faster you are at that the more likely you'll end up with high quality code in less time.
Anyway, I totally agree that for development the actual layout has very little influence, once you learned how to touch type on it.
It's also worth repeating that Dvorak was optimized for typing English, not C...
JarkkoL
05-19-2009, 09:01 AM
All typing done during development involves a lot more than just typing the finalized code. Experimenting, debugging, refactoring, etc. all involves a lot of typing. So the faster you are at that the more likely you'll end up with high quality code in less time.
There are way more important factors to speed up development and improve the quality of code than learning to type faster. Typing speed is the least of your worries and improving it from moderate typing speed isn't going to show up as a noticeable improvent.
JarkkoL
05-19-2009, 09:16 AM
And I feel very sorry for the Quebec residents. I was visiting Eidos Montreal a couple of months back, and it turned out that they had to ask the local government permission to buy us some US qwerty keyboards, which was fine because we were foreigners. But otherwise, Quebec companies are prohibited to use any other keyboard layout than Canadian French.
While I was working at UbiSoft Montreal I don't recall we used such a keyboard layout but maybe it has changed since.. I recall there was something about having to install Windows initially with French settings though or something weird like that. Quebecians are pretty protective of their language ;)
alphadog
05-19-2009, 09:44 AM
One word: Intellisense.
Another three words? How about "automated code generation"?
Another place Yegge and ilk is wrong? Comments are mostly useless and documentation is mostly auto-generated.
More? What about all the compound keystrokes and keyboard shortcuts? Those interrupt the normal, "home row" position and use drastically. Ever seen someone with "EMACS pinky-itis"? It ain't pretty.
The list goes on.
You spend more time thinking and less time typing, relatively, when coding. Coding != writing an English essay where length (a.k.a. bulls**t amount) matters almost as content.
WPM rates mean absolutely squat, except to developers who a) spent time learning how to touch-type fast, and b) feel pathologically compelled to justify to other developers the time spent thereof. It turns into "everyone must suffer like I did, else I suffered for nothing!" syndrome.
(Disclaimer: I'm not a hunt-and-peck type, I just not affected by b) above.)
JarkkoL
05-19-2009, 09:58 AM
Yeah, picking the right tools for the job and learning to use those efficiently is much more important. Or learning to use other techniques to speed up programming. Or learning to strike better balance between designing and refactoring. Or learning to design in the first place so that you don't have to refactor all the time (: Also when you move towards higher level programming typing speed becomes even less of a factor (more thinking in relation to typing).
monjardin
05-19-2009, 11:55 AM
And you cropped the obvious part from my post, because I continued "...so I don't think it matters which layout you use once you get past the learning phase"
That's because I didn't disagree with that part! ;)
monjardin
05-19-2009, 12:05 PM
More? What about all the compound keystrokes and keyboard shortcuts? Those interrupt the normal, "home row" position and use drastically. Ever seen someone with "EMACS pinky-itis"? It ain't pretty.
Being a vim user myself, my pinkies are fine. However, Yegge is an EMACS guy and he suggests swapping the ALT and TAB keys for that very reason.
Disclaimer: I'm not a hunt-and-peck type, I just not affected by b) above.
The hunt and peckers (;)) are the ones I'm talking about. I can't take a programmer seriously that has to search for keys or only uses his two index fingers. You really need to observe someone with this problem to appreciate the horror. JarkkoL and yourself are taking this personally when in all likelihood you both already type adequately.
JarkkoL
05-19-2009, 01:19 PM
JarkkoL and yourself are taking this personally when in all likelihood you both already type adequately.
That's because there are actually people who type adequately and believe that increasing typing speed makes them better programmers. I used to work with one who thought so, and in the end I had to write all his spaghetti code over because it was a total mess. Only if he would have typed slower so there would have been less to fix ;)
monjardin
05-26-2009, 07:52 AM
That's because there are actually people who type adequately and believe that increasing typing speed makes them better programmers. I used to work with one who thought so, and in the end I had to write all his spaghetti code over because it was a total mess. Only if he would have typed slower so there would have been less to fix ;)
In that case, his code would probably suck no matter how slowly he typed! ;)
rouncer
05-26-2009, 07:59 AM
the most important keys on the 101 is page up and page down vertical, and home and end horizontal.
There are way more important factors to speed up development and improve the quality of code than learning to type faster. Typing speed is the least of your worries and improving it from moderate typing speed isn't going to show up as a noticeable improvent.
I agree there are more important factors, but I don't entirely agree that it's the least of your worries.
There's nothing more pathetic than a programmer who doesn't know how to touch type.
I strongly believe that it does affect your working pace. Someone who can't touch type properly will feel much less inclined to refactor a whole section of code. They'll also abbreviate just for the sake of getting their work done and leave the code in a mess. They also get frustrated sooner so they can't stay concentrated for as long.
Writing good code involves lots of writing and rewriting. Often no matter how clever you are you have to actually test out ideas by implementing them, tweaking them, testing different approaches, etc. So being able to type faster than the guy next to you definitely gives you an advantage.
JarkkoL
05-27-2009, 01:07 AM
If you think that without touch typing you get moderate typing speed.. well, uhm ;)
Edit: Just for the sake of it, try out typing speed test (http://www.typingtest.com). I used 3 minutes test time and "Test Instructions" and got 70wpm with 100% accuracy, which is pretty moderate I think.
.oisyn
05-27-2009, 02:49 AM
74 wpm / 100%
I have never taken any typing lessons, and I also haven't met a single programmer that hasn't learned how to touch type, whether that be autodidactically or by taking lessons.
JarkkoL
05-27-2009, 03:42 AM
I haven't met one either during my 10 year career in the software industry or ~25 years in programming. I took it for granted that we are talking about people who can touch type (i.e. are not in learning how to type) as it would be pointless to argue the case who are learning to type and hunt-n-peck (: I.e. if you would increase your typing speed from 70wpm -> 100wpm, the improvement in your productivity would be neglible as programming is dominated by other things than typing.
Even if producing the lines of code would be a factor, it's not that you type it all but there is fair amount of copy/cut & paste and help from tools like Intellisense/Visual Assist, which makes typing speed even less of a factor. It has never even crossed my mind to be concerned about candidates typing speed in a job interview and if I was being asked that myself I would be like "these guys are clueless" and move on (:
They should make a keyboard so you typed very slowly. That way you would be forced to think before typing resulting in better code ;)
.oisyn
05-28-2009, 04:46 PM
No, that would only result in compacter code (less spaces and linefeeds) and shorter symbol names :). Not to mention no comments whatsoever.
TheNut
05-28-2009, 07:29 PM
90wpm on average, no errors. I remember my friend and I use to do 120 words per minute when playing online games (though accuracy not a big concern). Man, I've aged since then. Maybe I should pick up one of these http://livesciencestore.com/57847.html :)
I've also never been fond of touch typing, at least not in the traditional sense where my fingers center over the middle row. I tend to position my hands in the shape of an m (bird-like arc). I find I cover more ground that way.
JarkkoL
05-29-2009, 10:28 AM
83wpm/100% when I switched to the method in .oisyn's avatar ;)
vBulletin, Copyright ©2000-2010, Jelsoft Enterprises Ltd.