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
Explore this link on the map →related reading
- No, dynamic type systems are not inherently more openlexi-lambda.github.io
- Leaving Haskell behind - Infinite Negative Utilityjournal.infinitenegativeutility.com
- Reading 11: Recursive Data Typesweb.mit.edu
- Hazel, a live functional programming environment featuring typed holes.hazel.org
- Type system - Wikipediaen.wikipedia.org
- Reading 19: Little Languagesweb.mit.edu
- GitHub - system-f/fp-course: Functional Programming Course · GitHubgithub.com
- A Couple Million Lines of Haskell: Production Engineering at Mercury | The Haskell Programming Language's blogblog.haskell.org
- adventures in uncertainty: An Introduction to Recursion Schemesblog.sumtypeofway.com
- "We're building a new static type checker for Python" | Hacker Newsnews.ycombinator.com
- Reading 17: Recursive Data Typesweb.mit.edu
- Reading 17: Recursive Data Typesweb.mit.edu