An Ideal System Browser

Scott Wallace scott.wallace at squeakland.org
Thu Nov 29 23:35:47 UTC 2001


Hi, Jerry,

Good points all.

Just fyi, there *is* a tool in the system that addresses some of 
these needs -- two tools, actually.  They are young and little-known, 
but if you add them to your arsenal of tools you may eventually come 
to wonder how you ever got along without them.

The two are: an instance-based tool called the Instance Browser, and 
a class-based tool called the Lexicon.  You can obtain these tools 
using "browse protocol" (cmd p) from browsers, inspectors, and 
elsewhere.

Among the things these tools offer that other tools in the system don't are:

(a)  A "navigation" metaphor, with a "history" mechanism accompanied 
by forward and back buttons.
(b)  Natural in-tool chains of enquiry using "view" and "senders" buttons.
(b)  A "find" facility that allows you to find methods by selector 
fragment (this is like the MethodNames tool, but confined to methods 
understood by the actual object you are browsing.)
(c)  The ability to truncate your searches at any level of the 
inheritance chain.
(d)  Merging of method categories up the inheritance chain.

A typical scenario of use is: you're looking at a method; to 
understand it better, you want to look at a different method -- 
typically a method that calls this method, or a method *called* by 
this method.  So you look at that method (use the "View..." or 
"Senders" button) -- and maybe from there you may go on a *further* 
excursion suggested there -- and you can always return to where your 
enquiry started by hitting the "back" button.

(Many other queries and features are also available in this tool -- 
check out the various buttons, as well as the various items hidden 
behind the menu icon in the button bar.)

Understand that any one of these does not browse the entire system, 
but rather it browses the complete *protocol* of any one object or 
class.  Thus, it is great for any chain of enquiry involving messages 
sent to "self", but if you have multiple objects that send messages 
to one another, you're best served by having multiple Instance 
browsers -- one for each object.

   -- Scott


At 3:03 PM -0800 11/29/01, Jerry Balzano wrote:
>Not that I'd presume to know what that is at my stage of (Squeak)
>development, but it occurred to me as I was browsing around through various
>classes and instances and methods that the Squeak System Browser lacks a
>feature that we take for granted on all our web browsers and that most of
>us would be lost without -- a "back" button!  Is it possible that nobody
>has found the need for such a function?  'Cause I'd be looking at a method
>and I'd find a word I didn't understand or some such, or just say "I wonder
>about" some other class, method, or whatnot, and go there, then say to
>myself, "OK, that's great, (or "that's complicated" or whatever) now I'm
>ready to resume what I was doing."  But if what I was doing was in some
>totally separate class with lots of methods to paw (OK, scroll) through,
>well you get the idea -- what a pain!  and how wasteful of my time and
>energy.
>
>Now I know that I can just keep on opening a new SB whenever I begin one of
>these side trips, but my screen is already pretty full, and more than two
>System Browsers open at once is too many IMHO.  In most cases, all I really
>need is one open SB window, but with some kind of "history" mechanism, even
>if this is just a "back" button.
>
>What do people think?  Is this kind of thing already available somewhere,
>and I just missed it?  Or is there a better way of working such that
>working that way obviates the need I'm feeling here?
>
>		- Jerry





More information about the Squeak-dev mailing list