Design principles

Glamorous Toolkit is based on a handful of principles that we continuously discover and refine. Here is what we have so far.

Moldable first

Software is shapeless. Yet, to reason about it we, humans, need a shape. Tools provide the shape of software. It follows that tools are essential. Moreover, software is also highly contextual. For tools to be effective, they have to take that context into account. It follows that tools must be moldable so that the programmer can adapt them to the current needs, easily and frequently.

"I" stands for integrated

The "I" in the IDE stands for integrated, as in supports all activities required for evolving a software system. That means that every time we leave the environment to reason about our own system, the “I” has failed. We should never have to leave. And, true integration includes everyone that has an interest in the system. The environment is not just for a special breed of humans. It is for everyone, including managers, designers, and why not, your friends and family.

The environment is a language

We see the environment as a language with visual and interaction operators. We never build features. We grow them out of operators, and you should be able to grow them for your context, too.

Search is pervasive

Much of the software assessment effort can be expressed as search. So, search must be supported everywhere.

Visualization is a first class citizen

Software is data. And data has no shape. Or better yet, it has no one shape. It has many. That’s why the visual and interactive depiction of data must be a first class citizen.

Color is for data

Color is powerful. We want to use it for what matters. The code. The data.

No modal dialogs

Just that. No modal dialogs. Because our brains have better things to do.

One rendering tree

Ok, this is a nerdy one, but one that we are quite proud of. Whatever is shown on the screen is rendered in one single rendering tree. No canvas in between. That means that all layouts are regular layouts, including the graph layouts and text-editor layouts. That means that text is made of regular elements. And that means that all elements can be combinable without imposing a technical limit.