Moldable Development with Glamorous Toolkit at YOW! 2023
Would you like to learn about Moldable Development? Take a look at my talk from YOW! 2023.
The narrative was made out of multiple demos showing how widely applicable Moldable Development is and how an environment like Glamorous Toolkit can enable it.
A tour through the highlights
The first demo focuses on a tiny problem: how to filter the dependencies from a package.json
.
Hint: the answer is always a custom tool. And most often as a view in the inspector.

Indeed, the very essence of #MoldableDevelopment is that we should actively extend and adapt our tools to the context we work on. For every single development problem.
I know it sounds crazy but it actually works remarkably well. Just read on to see how far this idea can go.

We then get a bit more ambitious and look at how to find potential cycles between components in a React application.
Again, just a couple of views in the inspector.

Ok, so you might think that this applies to some static analysis. Brace yourself.
Next up: browsing a REST API. Again, just a couple of views in the inspector.

But perhaps you might be more interested in GraphQL than REST.
Now, inspectors are combined with GraphQL snippets seamlessly integrated in the knowledge base from the development environment.
Knowledge base in the development environment? Yes, you heard right. We'll get back to that.

So far, all examples were based on #Pharo, the main language in which Glamorous Toolkit is built. But the same ideas work with other languages as well.
How, you ask? Well, here is browsing Python objects through custom views defined in Python, too. In the same environment.

By now, you might be thinking that #MoldableDevelopment applies only to reading use cases. Indeed, that is what we aim to optimize primarily, but that does not mean we should ignore editing.
So, here comes an example of a custom editing based on the current code.

But what about more application domains?
That's the focus on the next demo which shows how we can explain implementation details through tools and can elevate those details all the way to the level of communicating with users.

Ah, while we were at it, we also get to see a new take on expressing tests as examples that make it possible to use the testing effort as documentation effort. Yes, documentation that is maintained, tested and visual.

Then we casually post a thread to Bluesky (you know, the social network with proper APIs) from the knowledge base page with the talk notes. Right from the development environment.
Knowledge management again? Yes, but this time, for personal computing purposes. We'll get back to this.

Wait, what did we leave out of software engineering practices? We looked at reasoning about architecture, testing, documentation, API manipulation, domain modeling ... ah, DevOps.
A demo of custom views to reason about what goes into a Docker installation addresses that.

But we left that personal computing thread a little too unexplored. To remedy that, we show an exploration of Bluesky content including custom queries. All this in the development environment based on a combination of snippets in the knowledge base and inspector views.

But that was not quite all. Not only does Bluesky rely on an open protocol, the protocol also allows you to define the content that gets manipulated through it.
Only that happens in rather cryptic JSON. No matter. Custom editors make working with these JSONs enjoyable.

So, what do all these demos actually show and why is this important?
Our goal is to make systems explainable and address the single largest problem in software engineering today: figuring systems out.

The solution is, of course, tools. But not any tools. Custom tools built during development for each development problem. That's key.
The demos show that we can handle a wide variety of problems uniformly, using the same techniques in a unified environment. They show that Moldable Development is a discipline.

Like any new discipline, it can be learnt. And to learn it, you need an environment.
That's what Glamorous Toolkit is for (and it's free and open-source). Read more about it: https://gtoolkit.com.
Glamorous Toolkit is not only an environment in which to practice Moldable Development, it is also an extensive case study of Moldable Development. And it comes with an explanatory book made out of live notebooks, too.
And did I mention that it's free and open-source?

What? You find Glamorous Toolkit impressive? Just head to https://gtoolkit.com and give it a shot. And let us know about it.
What's the catch, you ask? No catch. We really want you to make systems explainable because we believe it is the only way to make software sustainable.