Combining Simplicity and Complexity

Key idea: “easy to understand” does not mean “easy to do”.


Key idea: Complex and Complicated are not the same thing.

Basic CapabilitiesAdvanced Capabilities
Simple to Understand(Simple x Basic) (1)(Simple x Advanced) (4)
Complicated to Understand(Complicated x Basic) (2)(Complicated x Advanced) (3)
  1. notepad, rock, oar, spoon. Gets the job done. Can be composed with other simple basic to make better stuff.
  2. rube goldberg machines, setting the clock on a VCR, YAML as a DSL
  3. helicopters. Dependent type systems. Cutting edge complicated. Hope there’s a better way to accomplish something.
  4. The holy grail. \(E = mc^2\). Many physics equations.

Items that are simple to understand and have advanced capabilities are often composed out of smaller, simpler, pieces. Often they rely on layers upon layers of built up intuition and composition.