Hacker News new | ask | show | jobs
by mjul 1342 days ago
This is its key weakness.

You have to write many more tests and add a lot of predicates as pre/post conditions (invariants) to functions to check at runtime what a more modern compiler could have told you at compile time.

It adds a lot of friction and slows down the development process.

Combined with Clojure having lazy evaluation and nil punning it becomes frustrating in larger, domain heavy code bases.

Simple common “CRUD” line of business applications with shallow code paths and a database schema to serve as a secondary type system would probably suffer less from this, explaining why some devs say they don’t experience this.

For comparison, Typescript became so popular precisely because it mitigates similar problems for JavaScript once code based grew to non-trivial sizes.