ASM heatmap
Posted on by Idorobots
I had very little time for this blog lately, but this is about to end soon enough. Here's a quick post showing ASM' keyboard distribution.
What you can see is a heatmap generated using this tool for a Dvorak keyboard using code from the OliviaBOT.
Here's the QWERTY heatmap for the same piece of code:
The Dvorak version (I use a Dvorak keyboard layout, btw) consists of two clusters that barely reach out of the home row (don't mind the isle on the "#" key, I like my comments nice and noticeable). Here's a comparison with an analogous piece of code from Common Lisp:
And a QWERTY version:
Parentheses, that are both shifted and hard to reach are the most used keys, obviously. ASM might use brackets instead of parentheses for the same purpose. These are far easier to reach and won't force immutability of ASM code representation - ASM uses tuples for code evaluation, making it immutable by default. So far it worked nicely, but this is a decision I didn't think through very well, so it might change in the future, since I have yet to write it down in the specs.
Speaking of lazy, ASM' developement slowed down lately, because I had lot's of stuff to do on the Uni. We're getting a new online system implemented so there's twice as much bureaucracy going on. This should end in a week or so, so I'll hopefully get to finish the specs.
Here's a further comparison to D' and C++' heatmaps:
D programming language is a redesign of C++, so the syntax is mostly similar, notice that the most used key here is an asterisk. This is because I like my comment blocks visible. Here's the same piece of code without the comment blocks:
As expected, C++' heatmap is quite the same even though the syntax differs to some degree.
No comments:
The reason I'm comparing ASM, a Lisp derived language, to such a different one is the fact that C++' or D' syntax heatmaps are neatly distributed nearly on the whole keyboard. That means these languages make a full use of the keyboard in a retarded (for C++) and quite neat (for D) way, unlike Lisp, which forces the programmer to stretch his palm all the way to the parentheses in an awkward manner most of the time oh shut up past-me, you... It's not really a big deal, but I want ASM to have both elegance and brevity, like Lisp, as well as convenient syntax known and used by most of the programmers worldwide. Lisp syntax will do.
2016-02-18: Adjusted some links & tags.