• You are not logged in.

Programmer switching to Colemak

  • Started by Tetrinity
  • 79 Replies:
  • Reputation: -1
  • Registered: 14-Dec-2012
  • Posts: 212

Hey Tetrinity...

Whenever I pasted code such as below into http://patorjk.com/keyboard-layout-analyzer/#/main, the results always come out as Programmer Dvorak and the Simplified Dvorak keyboard as the 2nd.. What made you switch to Colemak? I suppose that the keyboard layout doesn't really matter that much when it comes to programming, but reading how much typing you do in a day, I can't help wonder...

"#import <stdio.h>
#import "Fraction.h"

int main( int argc, const char *argv[] ) {
    // create a new instance
    Fraction *frac = [[Fraction alloc] init];

    // set the values
    [frac setNumerator: 1];
    [frac setDenominator: 3];

    // print it
    printf( "The fraction is: " );
    [frac print];
    printf( "\n" );

    // free memory
    [frac release];

    return 0;
}"

Offline
  • 0
  • Reputation: 2
  • Registered: 13-Nov-2013
  • Posts: 48

Hi knightjp, even though this wasn't addressed to me I'm also a programmer that thought about both Dvorak and Colemak and chose Colemak.

My thinking was primarily to just get away from Qwerty, and even in code both Dvorak and Colemak have a clear advantage imo.  Once away from Qwerty while there is a difference between Colemak and Dvorak in terms of straight coding "distance" travelled it's a bit hard to tell how big a difference that actually is. A lot of code is auto-generated or completed for me when I code.  For example, when I type syso and hit tab I get "System.out.println()" and when I type "for" and then ctrl-enter I generate the following with the cursor inside of the parens.

        for () {
        }

What this means is what I type and what appears on the screen can be very different.  Added onto this is the fact that I still write a lot of emails, comments in code, and papers.  So on the whole I think Colemak might be slightly less "efficient" for straight coding but on the whole still seemed to be the better choice.

Offline
  • 0
  • Reputation: 210
  • From: Viken, Norway
  • Registered: 13-Dec-2006
  • Posts: 5,345

Using Colemak doesn't stop you from adding symbol mappings that suit you, in my opinion. The default Colemak just doesn't do anything to the symbols, since many users don't need that.

Last edited by DreymaR (16-Jan-2014 20:18:53)

*** Learn Colemak in 2–5 steps with Tarmak! ***
*** Check out my Big Bag of Keyboard Tricks for Win/Linux/TMK... ***

Offline
  • 0
  • Reputation: 0
  • Registered: 01-Nov-2013
  • Posts: 24

Programming (both work and hobby projects) involves plenty of typing that is not code; emails, documentation, etc. As a result, I don't think Programmer Dvorak is necessarily the most efficent layout overall even for a full-time programmer, especially when you consider the autocomplete that jsmithy mentioned.

I did a fair bit of research before making my choice, and in the end it came down to Colemak not having any "fatal flaws". While I liked Dvorak being widespread, I didn't really like the feeling of swift hand alternation on a keyboard and even to my untrained eye the L position was rather suspect. Layouts like carpalx have little community support and nothing to really set them apart from the others. On the other hand, I liked the concept of Colemak's rolls, there was decent community support (this forum, readily available scripts/installs) and generally just couldn't see anything wrong with it. Even now, my biggest complaint is merely the "lk" digraph!

Offline
  • 0
  • Reputation: -1
  • Registered: 14-Dec-2012
  • Posts: 212

When doing my research when I pasted in normal text such as formal letters, chat, etc.., The analyser always showed Colemak as the obvious choice. That said, the Simplified Dvorak keyboard always came a close second. That said, when it came to code, while Programmers Dvorak was the choice, true to form, again the Simplified Dvorak was in second.
I do admit that when I did paste certain sections of code, Colemak came in 1st; even ahead of Programmers D. This was of course was rare; one in 6 attempts.
So if we were to go by logic, the Simplified Dvorak seems to be the best of both; giving the best compromise on paper. Whether that is the case in real life remains to be seen.

Offline
  • 0
  • Reputation: 210
  • From: Viken, Norway
  • Registered: 13-Dec-2006
  • Posts: 5,345

Do you use alternative fingering for 'lk'/'kl'? Because you really should – the middle finger types 'l' in that bigram.

*** Learn Colemak in 2–5 steps with Tarmak! ***
*** Check out my Big Bag of Keyboard Tricks for Win/Linux/TMK... ***

Offline
  • 0
  • Reputation: 0
  • Registered: 01-Nov-2013
  • Posts: 24

I've practised alternate fingerings for "kn"," lk" and the like, but often find that I forget to use them when concentrating on what I'm typing rather than how I'm typing it. Since I haven't been doing much proper typing practice since matching QWERTY speed, practising the alternate fingering only occurs to me after I happen to type an awkward digraph. By which point it's too late ;)

A few things I forgot to mention in my previous post (was rushing it a bit, had dinner in the oven!):

- Shortcuts! Having a bank of shortcut keys in the lower-left corner of the keyboard really helps me. I'm left-handed but taught myself to mouse with my right, so typical workflow is click > move mouse > shift-click to highlight > Ctrl-X > move mouse > click > Ctrl-V. This was something I liked being able to do with QWERTY, so Colemak happening to share the keys was a boon in itself.

- I didn't know this at the time, but in retrospect I don't think moving the punctuation keys is very important, beyond getting the semi-colon off home row. Various attempts I've made at creating an Alt-Gr layout for punctuation haven't really paid off either, since I found bending my thumb inwards to hold Alt-Gr awkward and anything else involves so much movement I might as well have pressed the original key. Modifications I'm yet to try are the US punctuation layout (better positioning of "), and flipping the number row so that the numerals are on shift.

- Backspace as Caps Lock. Yes, I could use this modification with any layout, but it was Colemak that introduced me to the idea and it's by far my single favourite layout improvement. I actually had a relatively non-technical friend decide to try Caps Lock -> Backspace (on an otherwise QWERTY board) and he's been raving about it too!

Last edited by Tetrinity (17-Jan-2014 00:08:35)
Offline
  • 0
  • Reputation: -1
  • Registered: 14-Dec-2012
  • Posts: 212
Tetrinity said:

I'm left-handed but taught myself to mouse with my right,

I think most of us lefties still do mouse with the right. I think its because when we were kids, we saw others do it and we thought that was the only way. Now after doing it for so long, it feels more natural than left-hand mousing.
One thing though.. With left-hand mousing, they keyboard is right in front of you instead of off-centre to the left; unless you have a laptop style keyboard.

Offline
  • 0
  • Reputation: 0
  • Registered: 01-Nov-2013
  • Posts: 24

I used my left throughout most of childhood, indeed perhaps due to my (lefty) dad left-mousing. I even stuck with it through some IT classes where the teacher would insist on keeping the mouse on the right to the point of yelling at me if I temporarily moved it to the left (!). Eventually though, I got tired of having to move back and forth for shortcuts, so I swapped the mouse over to the right.

I always wanted one of those "left-handed keyboards" with the number pad on the left, but the price of those was always extortionate, heh. I don't really notice the board being off-centre these days. If anything, it probably does a decent job of simulating the Angle mod since the left hand doesn't have to bend as much!

Last edited by Tetrinity (17-Jan-2014 20:30:13)
Offline
  • 0
  • Reputation: 7
  • Registered: 21-Apr-2010
  • Posts: 818

I've seen guides that suggest you shouldn't have the keyboard so that Qwerty B lines up with your naval, rather have it to the left a little.  I think to make it a little easier on the left hand.

My laptop, is a little left sided too, because of the punctuation that occurs on the RHS of the keyboard.

You could liberate yourself with a tenkeyless!

--
Physicians deafen our ears with the Honorificabilitudinitatibus of their heavenly Panacaea, their sovereign Guiacum.

Offline
  • 0
  • Reputation: -1
  • Registered: 14-Dec-2012
  • Posts: 212

If you count the placement of the letters and fingers on the home row, even with the placement of the mouse on the left, you'd notice that there still more buttons on the right than the left. That is why the keyboard will always be slightly off-centre... That said, I still struggling with getting myself and Colemak working properly. Its kinda discouraging seeing someone else have such an easy time with it than what I have for a whole year... Don't get me wrong. I'm glad that they are having good experiences.. Just wish I was one of those success stories...

Last edited by knightjp (17-Jan-2014 21:31:53)
Offline
  • 0
  • Reputation: 7
  • Registered: 21-Apr-2010
  • Posts: 818

@knightjp, try completely random letter exercises.  After doing half hour of that, going back to normal typing will feel effortless!

--
Physicians deafen our ears with the Honorificabilitudinitatibus of their heavenly Panacaea, their sovereign Guiacum.

Offline
  • 0
  • Reputation: 0
  • Registered: 26-Oct-2013
  • Posts: 71

the keyboard doesn't have to be off center. even tenkeyless isn't enough. the apple keyboard can be centered. on pc, i use a Leopold F660C, which is nearly symmetrical; the only concession is a slight part on the right to fit the arrow keys and Insert/Delete (which i use for cut/copy/paste). still, i center this keyboard in front of me.

Offline
  • 0
  • Reputation: 210
  • From: Viken, Norway
  • Registered: 13-Dec-2006
  • Posts: 5,345

If you want to use AltGr strokes, try a Wide ergo mod. It really helps to have the AltGr key one step more accessible! With some wide space bars it's still hard but those are rare these days.

The Extend mod emulates the Tenkeyless goodness. You won't lose the superfluous hardware that gets in the way of your mousing, but you can center your keyboard better I feel and not have to fly around it to reach important keys.

*** Learn Colemak in 2–5 steps with Tarmak! ***
*** Check out my Big Bag of Keyboard Tricks for Win/Linux/TMK... ***

Offline
  • 0
  • Reputation: -1
  • Registered: 14-Dec-2012
  • Posts: 212

@Pinkyache - Thanks for the idea. Will try that. Do you ever wish that you started using Colemak 1st than using Dvorak?

I know that most people who are involved with coding would use remapped settings and stuff and that is a nice idea. But when I talk about choosing a layout for programing, I'm thinking of using it as is. No remapping and stuff.
That said, according to http://patorjk.com/keyboard-layout-analyzer/#/main; it shows Programmer Dvorak & Simplified Dvorak comes a close second. Considering that Programmer Dvorak is not a standard installed layout on any OS, I guess Simplified Dvorak is the next best for coding (As IS) and does not need to be specifically installed. But that does not mean its the best for normal typing in English; although it comes a close second. ;)

That said, the only reason that I chose Colemak is the because of the shortcuts. On a Mac, the Colemak layout shines in this area. The placement of the letters is somewhat better. I do feel that when it comes to certain words, you're literally typing with just one hand and that can get tiresome a bit. Kinda fatigues the left hand in my opinion.
Going from Colemak to Dvorak is painfully slow progress. Some of you will ask the question 'Why?'... :P
You will find some letters just not falling to hand as easy as they were with Colemak. 'L', 'F' comes to mind; but you soon get the hang of it... Then when chatting online with someone, you'll notice that characters like ':)' will be a pain due to the placement of the ';'...
On Dvorak, the punctuation is a dream. So much more easier. That is probably why it gets points for coding.

Offline
  • 0
  • Reputation: 210
  • From: Viken, Norway
  • Registered: 13-Dec-2006
  • Posts: 5,345

The best for coding is AltGr mappings (with a wide mod) and Extend mappings. That's pretty much independent of your letter block. I think you're barking up the wrong tree?

It's true that Dvorak emphasizes some punctuation. Too much for most typing, actually. Maybe that'll be a slight advantage to the coder, but I firmly believe it's a very minor one. The ability to navigate smoothly is a lot more useful! But this has been said a hundred times now I guess... ;)

Last edited by DreymaR (19-Jan-2014 10:08:15)

*** Learn Colemak in 2–5 steps with Tarmak! ***
*** Check out my Big Bag of Keyboard Tricks for Win/Linux/TMK... ***

Offline
  • 0
  • Reputation: 0
  • Registered: 04-Apr-2013
  • Posts: 538
knightjp said:

That said, according to http://patorjk.com/keyboard-layout-analyzer/#/main; it shows Programmer Dvorak & Simplified Dvorak comes a close second.

#import <stdio.h>
#import "Fraction.h"
int main( int argc, const char *argv[] ) {
    // create a new instance
    Fraction *frac = [[Fraction alloc] init];
    // set the values
    [frac setNumerator: 1];
    [frac setDenominator: 3];
    // print it
    printf( "The fraction is: " );
    [frac print];
    printf( "\n" );
    // free memory
    [frac release];
    return 0;
}

You've brought up this exact sample before, and it doesn't work for two very different reasons:

  1. As I've pointed out before, the main reason colemak scores badly on this sample is the assignment of the pinkie finger to semicolon.   Changing it to the ring finger makes the results much closer.  Similar gains are not witnessed when changing the dvorak semicolons for these samples, so I suspect this to be an implementation detail.

  2. The sample size is way too low; it turns out to not be a very good representation of code.  Using a larger sample yields very different results.  Even the default colemak scores similarly to the dvoraks (slightly higher - but not, I don't think, significantly higher), while the colemak with semicolon assigned to the ring finger scores quite a bit better.

Finally, even the use of code samples is questionable, since they're not always representative of what you type (especially when it comes to, say, Java, famous for having so much redundant boilerplate an IDE is needed to fill most of it in).  To get good data, you would need to record the actual keystrokes sent to your editor in the course of programming.

Last edited by lalop (19-Jan-2014 11:15:29)
Offline
  • 0
  • Reputation: 210
  • From: Viken, Norway
  • Registered: 13-Dec-2006
  • Posts: 5,345

Lalop's point is that small code samples are completely useless for evaluating layouts. I do agree – you'd need a large sample and preferably a key log for the results to be interesting.

*** Learn Colemak in 2–5 steps with Tarmak! ***
*** Check out my Big Bag of Keyboard Tricks for Win/Linux/TMK... ***

Offline
  • 0
  • Reputation: -1
  • Registered: 14-Dec-2012
  • Posts: 212

Thanks for the info. I get what you're saying... Yesterday I made a huge sample by compiling a bunch of old emails, code, formal letters and a whole bunch of other things together.. the result came out as Colemak (which should be a relief to everyone here... :P)
I just wanted to see with all the variation of stuff that I do on the computer each day, what the outcome was...
It was interesting to see how the results change as I added each bit of text. :)

Offline
  • 0
  • Reputation: 7
  • Registered: 21-Apr-2010
  • Posts: 818

Knightjp:
Do you ever wish that you started using Colemak 1st than using Dvorak?

Nope.  I weighed up the options before I began with Dvorak.  I wanted a layout that I could use on Windows, Linux and OSX with the least of fuss (if only it were easier...), as I desktop hop.  Colemak wasn't baked into OSX back when I started, that might have made the decision trickier - I try and avoid Windows, but I still end up using it on occasion, and I'm happy to have Dvorak there if needed.

If you mainly use your own PC (and I've said this before), you are quite likely to heavily customise your own environment anyway.  In that case you may aswell do somethng like Dreymar suggests.  I have to try and stick to defaults for my own sanity.

I can think of dozens of other shortcuts/coding aids that are layout agnostic that help me.  Mastering an editor, writing snippets, downloading manuals, organising your own code library for re-use etc.

There was also mention that just being able to type easier while not actually 'coding' can help your general programming , mailing lists, chat, forum, emails and web searches.

In Dvorak's defence, you do gain with some punctuation, the hyphen gets a far better position on the home row, and considering I use the hyphen for switches and in php it is an upgrade.

Last edited by pinkyache (19-Jan-2014 11:53:08)

--
Physicians deafen our ears with the Honorificabilitudinitatibus of their heavenly Panacaea, their sovereign Guiacum.

Offline
  • 0
  • Reputation: 0
  • Registered: 04-Apr-2013
  • Posts: 538
knightjp said:

I get what you're saying... Yesterday I made a huge sample by compiling a bunch of old emails, code, formal letters and a whole bunch of other things together.. the result came out as Colemak (which should be a relief to everyone here... :P)

What you say does bring up a relevant topic, but it wasn't actually what we were saying.  What we were saying is that you need more code (as opposed to more stuff in general) in order to evaluate colemak's usefulness in coding.  Even then, that kind of study may not be accurate due to editor completion.

But you bring up a relevant point: it's also true that we'd want to evaluate colemak's usefulness for the coder, rather than colemak's usefulness in coding.  In general, code tends to be dwarfed by text, even for the programmer.  This has led to some suggesting ignoring code altogether, especially if you can make further improvements on, say, the AltGr or even the editor level.

Last edited by lalop (19-Jan-2014 12:12:28)
Offline
  • 0
  • Reputation: -1
  • Registered: 14-Dec-2012
  • Posts: 212

Colemak comes built in to Mac OS X now and in some versions of Linux... Even the latest version of Windows 8 does not have it yet. Maybe when it becomes a proper ANSI recognised layout. I use my own computer at home and at work I do have my own workstation. I do not system hop that much at all. I do not work in the IT dept and when they do issue me with a new system, I will have to request that Colemak be installed. That is some thing I wish I didn't have to do.
Dvorak clearly has the edge on Colemak in that area...

One thing that I do think about is, how universal Dvorak is as compared to Colemak. If I do go on a vacation or something and I use an internet cafe, I can easily switch to Dvorak and switch it back when I leave. That will help me use my time better. This time when I went on vacation, I'm using Colemak & that mean't that my typing of emails and stuff were a bit slow. Not too slow to be an inconvenience, but I did wish I had Colemak installed.

As for the shortcuts, when I was using Dvorak, I didn't find them that bad. I never made a mistake in accidentally closing a window (Ctrl - W) when I actually wanted to paste something (Ctrl-V). To me that was kinda easy to get used to.

Offline
  • 0
  • Reputation: -1
  • Registered: 14-Dec-2012
  • Posts: 212

If anyone wants to know what I mean about the keyboard being off-centre to the left... this is what I mean... I guess that is something that you have to live with if you plan on using a full-size keyboard. (Excuse the messy workstation. Its my Hackintosh at home.) :)
FluxBB bbcode test

Last edited by knightjp (20-Jan-2014 17:12:39)
Offline
  • 0
  • Reputation: 0
  • From: Malmö, Sweden
  • Registered: 10-Sep-2012
  • Posts: 122
knightjp said:

If anyone wants to know what I mean about the keyboard being off-centre to the left... this is what I mean... I guess that is something that you have to live with if you plan on using a full-size keyboard. (Excuse the messy workstation. Its my Hackintosh at home.) :)
https://pbs.twimg.com/media/Beb2JWACMAAFKb9.jpg

Pff, ditch the rodent.

Posted without the aid of a rodent.

Offline
  • 0
  • Reputation: 210
  • From: Viken, Norway
  • Registered: 13-Dec-2006
  • Posts: 5,345

I never install Colemak on Windows machines! PKL for the Win.

That kind of skewness looks dangerous as it'll promote ulnar deviation. Unless you can get hold of a tenkeyless keyboard you should move the mouse or yourself.

*** Learn Colemak in 2–5 steps with Tarmak! ***
*** Check out my Big Bag of Keyboard Tricks for Win/Linux/TMK... ***

Offline
  • 0