Glamorous Toolkit is the moldable development environment. It is a live notebook. It is a flexible search interface. It is a fancy code editor. It is a software analysis platform. It is a data visualization engine. All in one. And it is free and open-source under the MIT license.
What's it good for?
Glamorous Toolkit can be molded in many ways to support a variety of situations and enable a new kind of development.
Specifications tend to get a bad name because they are expensive and often wrong. There is a better way. Model them explicitly. Explore scenarios through executable examples. View the results through custom views.Read more
Code reading is the single most expensive development activity. Much of reading is actually about finding interesting places. Finding the root cause, finding where to add a new feature. Those are search activities. Or visualization ones.
Iterative API & data exploration
To reason about data, we first need to qualitatively understand its structure. The inspection tools together with the ability of refining the data model and of visualizing in place are directly usable in these contexts.
Glamorous Toolkit is implemented in Pharo, the pure object-oriented language. Of course, it brings a moldable environment for developers working with Pharo. And yes, Glamorous Toolkit is developed using Glamorous Toolkit, too.
A novel development experience
Glamorous Toolkit is implemented in Pharo, but it's made to work for many languages.
For every development situation, we want the environment to present it contextually and when it does not, we mold it. Live. This seemingly small change is transformational and can be utilized in many ways.
Every part can be molded to the context. Every object can specify how it can be viewed or searched. Every method can specify how it can be edited. Every exception can define how it can be debugged. And all can be molded directly from the environment, often in minutes.
Understanding software requires continuous exploration. We capture that flow explicitly. In true moldable fashion, each step can be adapted dynamically. Together with the various tools this leads to an ever extensible experience.
Live programming is programning in the presence of living objects. It can start with a code snippet. Or with a form. Or another visual that creates the living objects.
On demand editors
We have a beautifully flexible editor. You just do not have go to it. The editor comes to you. You get to code, but you can do that after you find the right place.
Writing and consuming documentation must be enjoyable. And maintainable. So, we made the whole environment host a giant interactive, visual wiki.
Analyses for many languages
Examples are like tests that return an object. A small change that impacts how we compose examples, how we use them to guide development, and how, when combined with interactive narratives, we can explain our systems.
One rendering tree
Ok, this is rather ... geeky, but we are really proud of how we draw all scenes through exactly one rendering tree. That includes the editor or visualizations. We built a whole new graphical stack to make this possible. And now we can build new interesting visualizations and interactions.
Who is it for?
Moldable development is a new way to approach programming: developers build custom tools for, ideally, each of their problems. This requires new skills. Glamorous Toolkit is a platform through which you can learn and practice those skills.
Systems must not remain black boxes. They can be made explainable. For non-technical people, too. This has implications on how you can make decisions and how you can allocate and attract budgets.
Moldable development opens a new research space and Glamorous Toolkit is an engineered platform on top of which this new space can be explored inexpensively.
Glamorous Toolkit was first conceived to explain the inside of systems. Through custom tools people can form better mental models about the underlying system. We later learnt that teaching programming faces the same class of problem. Glamorous Toolkit can provide the basis for creating dedicated teaching environments.
We are still documenting both moldable development and Glamorous Toolkit. In the meantime, if you want to learn more, please do contact us.