by quellhorst on 9/8/11, 2:44 PM
by andylei on 9/8/11, 1:38 PM
it'd be interesting to see these heatmaps in some sort of normalized way. for example, 'e' is the most common letter in english, so its the most commonly used letter in these programming languages. it'd be very interesting to see, for example, this heatmap with the intensities divided by each letter's frequency of use in the English language, or across a large set of data including a lot of different programming languages
by swannodette on 9/8/11, 5:23 PM
It's interesting to note that a big reason ( ) dominate in Lisp here is that pg adopts the FP habit of short var names. If anything this is probably just a measure of the tendency to use long vs short name - mainstream OO practice encourages the former. It would be interesting to rerun the heatmap for Lisp with a typical CLOS program. I think you'll find that ( ) no longer dominate.
EDIT: And in fact here's a heatmap of core.logic (1K LOC) which is fairly OO-ish in its design - http://twitpic.com/6hwj88. ( ) are strong but do not dominate everything.
UPDATE: And here's a 1.4K LOC Clojure program, core.match http://twitpic.com/6hwo8w/full. ( ) again do not dominate.
by saintfiends on 9/8/11, 1:59 PM
This just graphically displays what I whine about most of the time. Why does my pinky has to do most the work? My pinky is pretty short and all the pinky movements are awkward. It considerably slows down my code typing speed.
I wonder If there would be another keyboard layout specially made for programmers. If you look at it you'll see that most of it has a similar pattern.
by tomh- on 9/8/11, 2:11 PM
by robert_nsu on 9/8/11, 2:17 PM
I looked at the heatmaps, then looked at my keyboard. The keys with rubbed out labels nearly match his findings 100%. My 'N' isn't (only because the key is slightly larger than my other keys). Other than that, he is spot on.
by zyb09 on 9/8/11, 1:54 PM
Clearly ObjC programmers are the only ones, who comment their code responsibly.
by quellhorst on 9/8/11, 2:01 PM
Would like to see a Dvorak version of this.
by 5hoom on 9/8/11, 2:17 PM
Interesting to note the difference between C and C++ with regards to the '*' and '&' keys.
I know there is a lot of raw pointer and address usage in C, but I'm surprised at how little these keys show up in C++.
It's good to see that people are taking advantage of smart pointers ;)
(It's subtle though, so I could be reading too much into it).
by KirinDave on 9/8/11, 3:16 PM
4 of my haskell files put into heatmap. One of them is an applicative-functor-style use of attoparsec, which tends to have more punctuation than normal haskell code. Even with the frequent use of :'s, $'s and ()'s, the alphanumeric keystrokes dominate the input.
http://fayr.am/9xkE
You can compare this to the Lorum Ipsum text map and see its only slightly different: http://fayr.am/9yk6
I dunno what that means or what sort of value judgements it drives, but it's pretty different from the other heatmaps.
by jemfinch on 9/8/11, 4:38 PM
This really needs to take into account modifier keys (in particular, shift).
by duck on 9/8/11, 3:55 PM
Whitespace hasn’t been taken into consideration (tabs and spaces) which would have been a cool thing to see.I think if that was included this would be a lot more useful. Is there a reason it wasn't?
by Newky on 9/8/11, 2:38 PM
The javascript image shows limited to no usage on the $ key, Doesn't say a lot for jQuery usage.
by cwp on 9/8/11, 8:37 PM
Here's one for Smalltalk. It's based on my .changes file - about 200K LOC, with all the lines containing '----' and $! removed. What's left is, I think, stuff that actually got typed into a browser.
You can definitely see $:, but otherwise it looks pretty much like English.
by bryze on 9/8/11, 5:31 PM
Has anyone done this for programmer Dvorak yet? I guess I'm just looking for validation..
by pa7 on 9/11/11, 12:56 AM
by danobeavis on 9/9/11, 2:36 AM
apropos of the brainfuck reference earlier today, here is a brainfuck interpreter, written in brainfuck, visualized through the keyboard heatmap.
http://i.imgur.com/lSDYJ.jpg
by swannodette on 9/8/11, 5:59 PM
by MrVitaliy on 9/8/11, 5:21 PM
The title is misleading. They just extracted character frequencies from source files which fail to capture 'Delete', 'Shift', 'Ctrl', 'Alt', etc keys.
Even has Paul Graham name at the end, as if 'Look, this is totally legit!'
by bfung on 9/8/11, 5:03 PM
Of course there's also the missing shortcut keys. For example, Java projects using an IDE would probably have crtl-space be the most frequently pressed keys (autocomplete).
by landhar on 9/8/11, 3:00 PM
The problem with this is that you can't tell the difference between numerals and symbols or even worse between two symbols in the same key (such as '_' and '-').
by ori_b on 9/8/11, 7:11 PM
Interesting. It seems strange that Javascript and Ruby seem to use 'r' significantly less than other languages. I have no idea why that would be.
by yvdriess on 9/9/11, 11:16 AM
It appears that it just scans source files, not actual key presses. I barely touch the parenthesis keys when programming Lisp for example.
by hernan7 on 9/8/11, 9:12 PM
Perl programmers do seem to comment a lot... the "#" looks almost as heavily used as the "$", which is mandatory for variables.
by saintfiends on 9/8/11, 3:50 PM
In reality though enclosing glyphs will not be very well balanced. Opening brackets will be typed more than closing brackets.
by dodo53 on 9/8/11, 1:24 PM
vim and emacs would be fun too :oP
by 4ad on 9/8/11, 3:35 PM
based on my visual observation, apart from lisp, python seems to skew furthest away from average. Its heatmap is much cooler, with less extremes. I wonder why.
by doki_pen on 9/8/11, 1:31 PM
I'd love to see a keyboard layout based on data like this.
by killion on 9/8/11, 9:24 PM
I bet the backspace key is used the most.
by francescolaffi on 9/9/11, 12:11 AM
time for a programmer keyboard layout?
"ASERTNIOL" in the middle line would be good for several langs
by MicahWedemeyer on 9/8/11, 2:20 PM
The most pressed keys are ⌘ (or CTRL), C, and V.
by Kwpolska on 9/8/11, 3:00 PM
Doesn't PHP use a colon at the end of every line? WTF?