What is Glamorous Toolkit?

Glamorous Toolkit (GT) is the Moldable Development Environment. It enables you to make software systems explainable by creating dozens — or thousands — of inexpensive contextual tools that are tailored for each problem.

To truly understand GT, we need to answer two questions: (1) What do we mean by contextual tools ? and (2) How does GT enable their creation through moldable development ?

Briefly, a “contextual tool” is a (usually small) analysis tool that explains part of a software system by displaying some information, answering a query, computing some metrics, or visualizing some data about that system (the context). We'll see a few examples below, and we'll see many more examples later. GT supports the creation of these tools by means of moldable development , a set of development patterns that enable the adaptation (“molding”) of the tools of the development environment itself to the context of the software system to be explained. As we go through the examples of contextual tools, we'll see how moldable development enabled their creation.

Let's start with an example of understanding an algorithm to nicely layout Treemaps. a Treemap is a common visualization for displaying hierarchical data using nested rectangles. A naive algorithm will generate long, skinny rectangles, whereas more “squarified” treemaps, are easier to read.

Below we see how the algorithm works by incrementally adding nodes to the treemap, adding skinnier rectangles, until they become too skinny, and a new subdivision of the treemap is created. We are in step 4. Two nodes have been added, but the third node was rejected as being too skinny, and we see the fourth node starting as a new rectangle at the top right. By clicking through the steps, you can see how the final treemap is generated.

What we are seeing is nothing but an object inspector on an instance of a treemap, which has been “molded” with several contextual tools that help us to explore and understand its construction. A conventional object inspector would only show you the “Raw” view of the treemap. Instead, using a lightweight plugin mechanism, the inspector is showing us numerous custom tools that are specific to the context of the treemap instance.

Let's see another example. Suppose we are interested to learn about the GitHub repositories of the GT project itself. Below we see an inspector of the GitHub organization data of the feenk organization, retrieved dynamically through GitHub's REST API.

Again we have contextual views, showing us the list of repositories and git events for the organization, from which we can navigate to views of the individual repositories, and so on. For more details see Working with a REST API: the GitHub case study.

In both examples, we have molded the GT inspector with contextual tools (views, searches and actions), but they are different ones, each specific to the context of particular objects and particular questions we want to answer.

To find out more, you can Get started with GT.