Stephan Dekker

If you are out to describe the truth, leave elegance to the tailor. (Albert Einstein, 1879 - 1955)

new discoverability paradigm in coderush

After listening to DotNetRocks show on Coderush 2.0 (http://www.dotnetrocks.com/default.aspx?showID=188) where Mark Miller, who is allways a laugh (Maybe he will join Rory on Channel9, sho knows.. (Or does one have to work with M$ to work on channel9??)) talks about discoverability i had to check out his implementation in Coderush.

Ok, CodeRush brings down performance and it does irritatie me sometimes, but the training window is great! It works like intellisence and shows in the training pane what options you have.

He also talks about, and this is the point i got realy interested, making the trainging window smart. Coderush works with keystring, all meaning different templates to insert in to the code. So if i type: 'i' 'f' <SPACE> I get the if ()  piece. If i do 'i' 'f' 'b' <SPACE> i get the whole if () {} block.

Mark explains how he want to make the training window smart by keeping track of keysstrings i allready know. If i use the ifb<space> with short inter-key-times, i will know the keys. If the key-times are long, the window can assume i am looking things up in the window.

The window can, by this principle, keep up with my knowledge about the program. This i think is realy cool. I sometime implement a setting in the options dialog indicating the experience of the user (A slide or something) and based on the setting i show more or less controls, more detaild info, etc.

I am not sure if this is realy new, but i have not heard of it, so it is new to me...

Using reaction times to determine the settings is a realy good way to do it automatically. I am now thinking of a way to create a practicle (generic) implementation of this principle for the projects I am working on. The problem lies in the fact that users can become experienced in one piece of the application, but never use the other piece. So i have to determine the pieces, define the different experience levels for them and find iout what those levels sohuld do to the UI.

I'm thinking of an XML file for keeping track of those things and implementing a layer / some layers of abstraction in the XML file.

The other part of this is how to determine the experience of the user. Reaction times will work in CodeRush but it will not in a lot of other apps. So maybe there are other ways of determining that. Lets see how that paradigm goes?

Good thinking Mark !! Excellent idea !!

 

Published Sun, Oct 8 2006 11:44 AM by Stephan Dekker

Leave a Comment

(required) 
(required) 
(optional)
(required) 
Please add 2 and 8 and type the answer here: