ThingLab

ThingLab is a visual programming environment implemented in Smalltalk and designed at Xerox PARC by Alan Borning.

A conventional system allows a user to provide inputs that produce outputs. A constraint-oriented system, such as ThingLab, allows the user to provide arbitrary inputs or outputs, then solves for whatever is unknown. ThingLab is viewed as one of the earliest constraint-oriented systems.

ThingLab is credited in "Fumbling the Future" as a big reason Xerox continued to fund computer development.