Towards a better IDE in Squeak

David Röthlisberger squeak at c3com.ch
Tue Feb 20 09:25:18 UTC 2007


Hi Roel,


> "An IDE which makes it easy to focus on your work while hiding the 
> complexity of the things you are not interested in."
> 
> Most IDEs seem to think that people only work on a single class (or 
> hierarchy) at a time. But this is not the case, of course. Sometimes it 
> is true, but more often than not you are working on a couple of classes 
> that collaborate. In that you would ideally like to see only these 
> classes, and then only the parts of these classes that have to do with 
> the behaviour you are working on. What makes this hard is that this is 
> something which changes rapidly over time. One minute you are working on 
> extending a double dispatch scheme, the minute later you are changing 
> the implementation of a related class to implement a singleton pattern, 
> etc.

Yes, exactly. An idea of mine was to take use of dynamic (feature) 
analysis to find out which classes collaborate to each other when a 
software is running. Then we could automatically group these classes 
together. The closeness of one class to another in this group reflects 
the "closeness" in a feature or in the whole software. The closeness 
information has to be gained dynamically, and metrics to measure this 
closeness could be methods invoked on each other or instances passed to 
methods of each other, etc.
This could lead to a short navigation distance a user has to follow when 
working on a specific feature in a software which minimizes context 
switches, different windows to open, the time to find and navigate code, 
... We could even think of doing the same with methods instead of classes.

We could even do more with dynamic anlysis, e.g. visualize objects 
passing in a software, etc. For me, bringing the dynamic part of a 
software to its typically pure static view we have right now in all or 
most browsers seems promising.

One big issue here is of course to permanently gather this dynamic 
information and to make it easily accessible to the user while he is 
working on a software, so that the user gets the information at the 
right time at the right place. This is the challenge.

> Note that from my experiments analyzing the behaviour of students 
> wiorking with VisualWorks (through an extended version of my 
> SmallBrother tool that would track what window was being used and being 
> spawned from what other window in order to perform a certain action), 
> there seem to be two kinds of users: one that like to have multiple 
> windows open and those that like an Eclipse-like approach with only one 
> window full-screen and buffers/tabs/views. Might be obvious, but it 
> really seems to be the case.

yes, this is also my impression.


David



More information about the Squeak-dev mailing list