Comment
Comment by iLemming
What pisses me off that whenever static type advocates talk, they start hand-waving and pretend that dynamically typed languages have no types whatsoever. First of all, most of them are strongly typed. Lisps in particular are. Clojure, CL, and even Elisp. Secondly, have you ever heard of "runtime-checking"? And then let's say you need to define a function that needs to ensure that a customer's age is between 18 and 75, and the output of it must always be a prime number. Expressing these kind of constraints statically is not that simple. In Clojure that's a three-liner - you can have arbitrary predicates on data shape. You also get generative testing from the same specs, and you can turn instrumentation on in dev and off in prod. Most mainstream static type systems can't express those predicates easily, and they don't give you property-based test generation for free. There's always trade-offs. Can we please keep that in mind?