Math over types
I use to be a believer in type centric software designs. Hell, I hired and led Haskell developers to implement a smart contract language! However, just like software languages get reduced to numbers when they run on computers, types can also be reduced to numbers. Yet that is not enough as types capture invariants, therefor more than numbers are needed to implement types. We need numbers and math!
The figure below is a seven dimensional binary space partitioning of one hundred random segments. It is a modern re-visit of code I wrote in summer 1984 for an integrated circuit CAD tool. Here I want lots of dimensions, because types as numbers need them.
Focusing on our topic:
Shallow designs are better. Yet shallow implies wide. And wide is hard.
Monolithic design are by nature local. Adjunctive, multi-dimensional designs, can be distributed. Yet they are also hard.
Math is good at dealing with hard.
To wrap this up:
In 2024 and onwards we do not build large designs with types, we do it with math!
Wishing you all a fruitful and constructive 2024!
All original content copyright James Litsios, 2024.
