| ▲ | wrathofmonads an hour ago | |
Clojure is a strongly typed language. A Clojure REPL capturing immutable, inspectable state is a philosophically richer feedback substrate than it gets credit for. Spec can express constraints that static types cannot - things that would require dependent or refinement types in a static system (and the enormous complexity that comes with them) you can just write as a predicate. The tradeoff is that specs are only checked when you actually exercise the code path, whereas a type error is total and upfront. But that's exactly the point - an agent working surgically on a specific path is exercising it, so the totality of static checking matters less. If we're not vibe-coding, a dynamic, strongly-typed, immutability-friendly language like Clojure could be both token-efficient and capable of richer reasoning than a static type system allows. | ||