Hi,
I'm new to this forum and quite new to the idea of developing one's own layout, but I really like the idea. Some years ago I started to learn dvorak and used it exclusively in my chat-window while maintaining qwerty on all other windows. The main reason behind this is that I never got used to using dvorak in vi. Two years ago I abandoned dvorak, but the inefficiency of qwerty is still nagging on me. That's why I found my way to this great forum.
While reading all these threads about 'same finger' and 'rolls' I realized how limited the number of keys in a comfortably reachable position really is and how vain the efforts are to find a layout that is _really_ fast.
So I came up with a really weird idea, just the right one for a first post ;-)
What's limiting us is the physical speed of our fingers, not our minds. Every time you have to move your fingers to a hard-to-reach key, or have to use the same finger twice, your speed get's a penalty you can not make up for. How good would it be to have all the keys in the home row and never use the same finger twice?
Ok, fasten your seat belts. What we need is a context sensitive layout. We always look at the distribution of characters in a given language, but we only look at the overall distribution. The distribution of characters following e.g. 'A' is significantly different from the distribution following 'B'. We partly take this into account by looking at trigrams. But how would it be to have the layout depend on the key pressed before? We would have n different layouts. This would enable optimizations far beyond imagining. Done right you'd hardly have to leave the home row at all and nearly never use the same finger twice, not even for a repeated character.
Of course this would be _really_ hard to learn, but if you master it all other geeks will look to you in awe. This will push our physical limits. The mind will catch up, that I'm sure of.
To make it a bit easier, one might want to group keys/layouts so not to have a different layout for each typed key, but only a smaller number, maybe two or three. This might give most of the rewards and be still manageable.
Also, even the optimization problem might be worth a PhD thesis ;-)
So, who'll take up the challenge?