Introducing the Glamorous Inspector for Smalltalk

A while ago I started the Glamorous Toolkit (GT) project, an effort to build a toolkit for Smalltalk development. GT is based on Glamour, the core engine in Moose for building browsers.

Today, I am happy to announce the first released version of the first tool in the toolkit: the Glamorous Inspector. Smalltalk is all about objects, and the Inspector is a key tool for handling these. The design of the Glamorous Inspector comes from the experience of building the Moose Finder interface for manipulating Moose models.

The current set of features includes:

  • one-window interaction following a OS X Finder-like metaphor
  • an evaluator for each object
  • multiple views specific for each object, such as displaying the picture of a Form object
  • methods browsing
  • easy execution of unary methods
  • scalable display of large collections
  • an easy extension mechanism via Pragmas to customize the views for different objects

To provide a better light of what is possible, I built a short demo (embedded below and online). In this demo we start by inspecting the RPackage structure from the image, we select some packages, from a specific package we select the Form class, then we get to all its instances, and finally we inspect the visual representation of two of the larger forms found in the image. All in the same inspector.

What is not shown in the demo is the contextualization mechanism. It is this mechanism that allowed us to manipulate the items of a collection, or see the image of a form object. This mechanism is open, and you can extend the inspector by defining new specific views.

The implementation of the current version totals 210 lines of Smalltalk code. It is true that Smalltalk is a concise language, but reaching this small size was possible only because the Glamour engine provided the right abstraction level. Building browsers is a domain in itself, and Glamour is the platform for it.

Posted by Tudor Girba at 22 August 2011, 9:18 pm with tags moose, demo, announcement, tooling link