Scopes - An Interactive Tool for Smalltalk

Both beginning and expert Smalltalk programmers should find Scopes useful.

I recently came across a reference to a powerful observation


Trying to get your head around smalltalk without using the IDE is like going to Paris and eating at McDonalds. Sure, you’re in Paris, but you aren’t really exposing yourself to what it’s all about.


Great quote about the Smalltalk IDE


This point could be made even stronger by substituting “creating and interacting with objects” for “using the IDE” because too often, the role of IDE is reduced to browsing and editing source code. A fundamental way of interacting with objects is by examining their properties. One of the early Smalltalk-80 books, The Interactive Programming Environment(available here) devotes an entire chapter to the Inspector. In Smalltalk Programming for Windows we said:


Next to the CHB, the Inspector is the most useful window in the Smalltalk /V for Windows environment.


However for complex objects, the process of opening and navigating multiple inspectors becomes unweildy. In Squeak the ObjectExplorer emerged in large part to address this problem. In recent releases, ObjectExplorer gained icons which make it even more useful but in some situations ObjectExplorer is overkill. Often one is examining an object but not interested in all or any of its instance variables. For example with Morphs, one is often most interested in the hierarchical structure. MorphHierarchy does a nice job in this regard but is hard-wired to view the entire Morph tree starting with the World. More significantly, MorphHierarchy doesn’t provide a workspace and menu to facilitate interaction, nor does it work with non-Morph objects. Scopes are intended to provide a flexible tool that combines the best of all worlds. The current code is in mixed state of development. Scopes have been simplified and extracted from earlier environments I’d created. CompositeScopes are in solid beta form and very useful right now


CompositeScopeOnWorld


but ObjectScopes have much more work to do in their current incarnation. ObjectSccopes are more sophisticated and holistic because the only distinction made amongst properties is whether or not they are executable. Scopes also provide a means of filtering which objects and properties are shown. I’ll post updates here as they occur.

Scopes: Beyond The Inspector and Object Explorer « The Smalltalk Journal

Feedback is encouraged!

Loading mentions Retweet

Comments (0)

Leave a comment...

 
To leave a comment on this posterous, please login by clicking one of the following.
Posterous-login     twitter

About

This is my new home in the meshverse! It is mainly a personal flow but it's Jambalaya style - updates to my specialized and professional interests show up here. If that's TMI you can subscribe to and/or follow just the ones you want. Everything that shows up here flows to my Facebook profile http://www.facebook.com/laurence.rozier and Twitter page http://www.twitter.com/lrgriot.