1 minute read

Formalism and Awareness

Skill building helps us focus our awareness. Formalism is an incredible scalpel for sharpening thought. It forces us to be really precise about what we mean. There is nothing more formal than a (classical) computer program. It is even more formal than mathematics.

Formalisms often force us to erase syntactic differences between concepts to uncover more parallels. A sequence of items is “really” a function from the natural numbers to some items. It’s not a fundamental concept, but one that can be defined in terms of other concepts.

Abstractions and Interbeing

Many of the most powerful ideas in PL are secretly interbeing concepts. They get rid of previously rigid boundaries between ideas

  • functions are values (functional programming)
  • code is data (Lisp)
  • types are terms (dependent type theory)

These ideas are often extremely valuable and insightful. They are often both simpler and more expressive than theories with rigid boundaries. If you have rigid categories, the way to make your theory more expressive is to add more categories and more categories and more categories and… But the tradeoff is that theories which conceptually unify ideas can be more confusing since these boundaries don’t exist. They also tend to have recursive definitions all over the place. Disjoint, non-recursive categories are easier to hold in our minds, even if they are less powerful.

The same pattern of interbeing shows up in data visualization when you interrogate the field formally, but we are just beginning to understand this.

Categories:

Updated: