For one thing, Clojure has type analysis: spec. Also, as pointed out in the article, you can also write tests.
For one thing, Clojure has type analysis: spec. Also, as pointed out in the article, you can also write tests.
+----------+-------+-------+
| Language | Tests | Types |
+----------+-------+-------+
| Haskell | Yes | Yes |
| Clojure | Yes | No |
+----------+-------+-------+This is also made obvious by the idiomatic use of each technology.
So, no. My little chart is correct.
I understand the idealist world view is seductive — we'll be discipined, we'll write the tests, we'll make good use of Spec, etc etc.
In reality, I have never seen this happen. Humans are lazy and undisciplined, so that's what I optimise for.
It’s not a type system, but it’s very concise and easy to add validations to important functions. This removes the “lazy and undisciplined” part of the equation.
I agree.
But we do use spec very successfully for complex data structure validations and example data generation.