Parse, don’t validate
Historically, I’ve struggled to find a concise, simple way to explain what it means to practice type-driven design. Too often, when someone asks me “How did you come up with this approach?” I find I can’t give them a satisfying answer. I know it didn’t just come to me in a vision—I have an iterative design process that doesn’t require plucking the “right” approach out of thin air—yet I haven’t been very successful in communicating that process to others.
Historically, I’ve struggled to find a concise, simple way to explain what it means to practice type-driven design. Too often, when someone asks me “How did you come up with this approach?” I find I can’t give them a satisfying answer. I know it didn’t just come to me in a vision—I have an iterative design process that doesn’t require plucking the “right” approach out of thin air—yet I haven’t been very successful in communicating that process to others. However, about a month ago, I was reflecting on Twitter about the differences I experienced parsing JSON in statically- and dynamically-typed
related reading
- Everything I know about good system designseangoedecke.com
- No, dynamic type systems are not inherently more openlexi-lambda.github.io
- Laurence Tratt: Which Parsing Approach?tratt.net
- A data race that doesn't compilecorentin-core.github.io
- Destroy All Values: Designing Deinitialization in Programming Languages - Faultloregankra.github.io
- Leaving Haskell behind - Infinite Negative Utilityjournal.infinitenegativeutility.com
- how I think when I think about programming - alice mazalicemaz.com
- Everything I know about good API designseangoedecke.com
- Do the simplest thing that could possibly workseangoedecke.com
- A half-hour to learn Rustfasterthanli.me
- Reflecting on deserialization. Why you should explicitly decode your JSON.hashset.dev
- Harsh Gupta (@hargup13) on Xx.com