Programmable Ink Lab Notes
title
Formality on demand

One of our central beliefs at the lab is that premature formality is the root of all evil.

Computers are great at doing things formally with explicit structure. Programs are formal descriptions of what the computer should do. But while using formalisms can be great, forcing people to be explicit about everything often gets in the way.

Many systems force the user to express structure that isn’t relevant for the task at hand, or, in the early stages of an idea, isn’t clear yet. In the worst case, that structure is simply non-existent or based on the wrong assumptions about the world, and the user is forced to input bogus information.

Alot of our prototypes try to avoid premature formality, by offering primitives that support structuring things after the fact.

We call this Formality on demand, or Gradual enrichment: The process of starting with loose, informal, unstructured content and adding structure, formalism, and fidelity gradually over time.

See also: Formality Considered Harmful: Experiences, Emerging Themes, and Directions on the Use of Formal Representations in Interactive Systems