The Moldable Development Environment
Glamorous Toolkit 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.
Figuring systems out, reimagined
Developers spend 50% or more of their time figuring systems out. It's the single most expensive activity in software development. And most of it is spent on reading. We reimagine it from the ground up, and with it we reshape the whole development experience. We call it moldable development.
Every single development problem includes a data science problem, and data problems are best dealt with custom tools. Glamorous Toolkit makes this practical through a platform that makes the creation of tools inexpensive.
What's it good for?
Glamorous Toolkit can be molded in many ways to support a variety of situations in a uniform manner.
Executable specifications & domain discovery
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.Read more
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.Read more
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.Read more
Join the conversation
Moldable development has many implications both technically and economically. And it can make you smile when you work, too.
Figuring systems out is expensive and pervasive. Not doing it well ends up creating black boxes that pile up on top of each other. As the world we build is based on software, we cannot let it remain a black box. It's a large problem that can only change if we deal with it explicitly. We need a conversation.
We created Glamorous Toolkit to have a concrete conversation about how we figure systems out. Join us.
What people say
A most fascinating environment.
GT is a point of light in the darkness. I have my reservations of course, but it is by far the best example I've seen of a live literate programming environment.
GToolkit.com is the only environment that we think might be better for thinking in than us.
The first software system that I can seriously imagine to replace Emacs for me. Given that I practically live in Emacs, that’s not a small statement.
It's impossible to explain the feeling of #GToolkit's "new world" where, in a one-liner, you can compose queries VS. traditional context switching to a stovepiped tool with its own domain and limitations. You'll just have to try for yourself...
It is no exaggeration to say that #GToolkit is a work of genius built on top of a work of genius.
One of the most impressive tools I've seen in the last ten years. The Glamorous Toolkit extends Pharo IDE capabilities to support live creation of inspectors/visualizers and editors for objects.
It makes every other IDE obsolete.
just got off a call with @girba talking about gtoolkit.com 🤩
this is what's possible when you think about developer experience and cognitive overhead up front. a generational leap in IDE tooling for the whole system 👩💻✨
A novel development experience
Glamorous Toolkit is implemented in Pharo, but it's made to work for many languages.
Every part of a software system, be it an algorithm, a domain-driven design, or the architecture, can be made explainable through custom tools. Glamorous Toolkit makes this possible by treating the interface as a set of visual and interactive operators that can be combined 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
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.
Yes, managers. Systems must not remain black boxes. They can be made explainable. For non-technical people, too. Glamorous Toolkit makes this posible. This has implications on how you can make decisions and how you can allocate and attract budgets.
For software engineering researchers
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.