
TL;DR
After years in Clojure, the author challenges the notion that static types are necessary for safety, arguing that dynamic languages can achieve similar correctness through schema validation tools like Malli and Spec.
✦ Why It Matters
Consider using schema validation tools to enhance data correctness in your dynamic language projects.
Key Takeaways
Full Summary
The author reflects on their transition from Clojure, a dynamic language, to TypeScript and Go, highlighting the misconceptions surrounding static type systems. They engage with common arguments for static types, such as enforcing contracts and enabling confident refactoring, and counter these with Clojure's tools like Malli and Spec, which provide similar benefits.
The discussion reveals that many mainstream typed languages have limitations that undermine their perceived safety. The author posits that types serve as a social technology, impacting team dynamics and onboarding, but can also introduce unnecessary complexity.
Ultimately, they argue that the real tradeoff is between discipline and enforcement, advocating for a disciplined approach to development that prioritizes rapid feedback and simplicity over rigid type systems.
Related