Living happily together

Doug Way dway at riskmetrics.com
Tue Jul 10 17:45:28 UTC 2001


> On Mon, 9 Jul 2001 01:18:28 -0700, "Jim Benson" <jb at speed.net> wrote:
> 
> > As I see it, the current browsers do a smashing job of classifying the
> > system into named categories. What it doesn't do is tell me how the various
> > classes interrelate. While I hate to use the term 'CASE tool' , it's
> > difficult at a glance to tell what the design intentions behind a small app
> > are (or even what the apps are ;-) and how the classes are related. Even
> > simple apps require that you have more 'image' specific knowledge than is
> > reasonable to expect.

It's a large problem. :)  The Whisker browser I'm working on attempts to inch toward this goal a bit, though.  (see http://www.mindspring.com/~dway/smalltalk/whisker.html )  Still, there are some mostly unexplored areas such as displaying how an app is set up via what its class' instance variables contain. (say, trying to integrate an object explorer with a code browser)

Jon Hylands wrote:
> ...
> The other thing I do is change the real estate policy to open windows in a
> cascade fashion, from somewhere near the top left corner. I can't work when
> I've got browsers all over the screen. I open the browsers when I start a
> project, and unless I do some serious refactoring they stay that way.

It would be nice to see this as a preference.  (There is a reverseWindowStagger preference which does an odd combination of this and the default direct-stagger behavior.)  The direct-stagger behavior gets annoying if you have a large screen (e.g. 1600x1200) set up, and when you open an inspector it shows up in Buttmunch, Idaho. (i.e. very far away from the cursor :) )

> When I was at The Object People back in the early nineties, Anthony Lander
> and I wrote a category browser in Visual Smalltalk that worked somewhat
> like the ST-80 category browser, except all the lists were multiple select
> (and all the operations that made sense worked on multiple selections), and
> the classes in the class list show up in hierarchical order, with indent.

Hierarchical ordering is nice... the various Envy browsers did this. (did yours disable or otherwise indicate the superclasses which were not in the current category?)

The Whisker browser sort of addresses this by showing the entire hierarchy for selected classes, although it's currently somewhat problematic because the list is too long since it shows all subclasses of Object.  I'm planning to address this by allowing "uncle" classes to be hidden, which should make it a lot more concise.

> We did the state of the browser as an object, and we
> had a stack so that you could push and pop the browser state if you wanted
> to go down a side path, without opening another browser. The browser state
> even kept the contents of the code pane, and its dirty flag, so in the
> middle of editing a method, you could press Alt-C to push the state (which
> automatically cleared the dirty flag after the state was saved), move over
> to a different class to find the name of the method you were looking for,
> and then press Alt-V to pop back exactly where you were.

Now that is pretty cool, I haven't seen that anywhere else.

> We also had change sets integrated in the browser. When you selected a
> "current" changeset for the browser (from a drop-down combo box above the
> class categories), any method or class (plus the categories they were in)
> showed up in the list views in blue, with normal items in black.

That's also very handy.  (I think someone might have submitted an enhancement for the Squeak browsers awhile back that did this?)

> Oh yeah, and it was *fast*... Really, really fast...

Working on browsing tools can be fun. :)

- Doug Way
  dway at riskmetrics.com




More information about the Squeak-dev mailing list