A design maxim for pure systems: "make invalid states unrepresentable."

· Bits and Bobs 1/21/25
  • A design maxim for pure systems: "make invalid states unrepresentable."
    • This creates systems where everything within them is known to be pure, accurate, safe.
    • This can make reasoning within them much simpler, and allow elegant formalisms and simplifications.
    • The problem is that the transition from the real world to being represented in the system becomes much more onerous.
    • The real world is messy and impure.
    • To model the real world in the pure formal system requires quite a bit of work from the user to "import" it.
    • This work can be like a wall in front of you before you even get started.
    • So the tradeoff is you never run into impure states within the system, but you also might use it for far fewer real world things because it's such a pain to model real things in it.
    • Ideally you have a rough and ready, flexible 'inbox' where you can roughly model things and then iteratively clean them up to become more pure over time.