Creole is a fusion of Shrimp (a hierarchical visualzation technique) with Java. I like reading about environments which are solving problems like this – problems I didn’t even realise I had until they were pointed out. There is a conceptual wall which divides “the tool” from “how you use the tool”. If your only navigation tools are class-hierarchy views and call-graph views, then you spend a lot of time “using” these tools in order to answer the questions which you are asking of the code. Wouldn’t it be better to use more powerful tools, so that you can actually ask the question directly? That’s what JQuery is all about too. There are lots of cool UI ideas and metaphors in these two projects.

I’ve often “watched myself” using a development environment and realised that I have a strong sense of a “current working set”. I think that the default “everything is visible” notion which most development environments present isn’t very useful. I would like to start with an empty canvas, and drag a few methods, classes or JQuery-style dynamic queries onto my canvas. At any one time, I’d be working with a canvas which contains only information relevant to my current train of thought. I would probably switch between canvases as time progreses and I start working on different parts of the system. In fact, it may be quite useful to share canvases between developers, perhaps as a way of guiding new developers .. “Bob, here’s the set of methods which you should look at before making your change”.

As an aside (of interest to Voxar folks), there is a “filmstrip” metaphor used in Shrimp which is really similar to Live Images in Voxar3D. If I knew more about formal HCI, I know where to look for more “GUI design patterns” such as this. I think this particular one is quite useful and I’d like to see more.