Comment by roenxi
2 days ago
> Writing a dynamically-typed language does not mean he's an expert in types.
That isn't a reasonable criticism here. To take it to the extreme, it wouldn't be accepted that someone has to be an expert in homeopathy before deciding they want to disregard the approach. It is up to experts to proactively demonstrate the worth of their domain - he's a language design expert and he's saying that he doesn't think the people formalising the type system have proven it generally powerful for designing new languages.
He's not claiming to be an expert in types, in "Maybe Not" he's specifically arguing that in programming languages they are an attempt to solve a problem where we should be looking for a stronger approach. And in this case, that approach is open schemas.
Homeopathy can be quickly disproved, because its core tenets violate basic physics. Expertise is not actually needed.
Whereas type systems are complex enough that "a monad is just a monoid in the category of endofunctors, what's the problem?" is a recurring in-joke.
That suggests expertise is warranted.
> Whereas type systems are complex enough... [t]hat suggests expertise is warranted
Well no hang on. Homeopathy is very complex; quackery typically is. You can't use complexity as a defence here [0].
You justified rejecting homeopathy by saying that it can be dismissed with expertise in an unrelated field; so you have to accept that a non-expert can dismiss a field based on general knowledge in other domains. Which is almost exactly what Rich was doing in Maybe Not; except he is actually a domain expert in the area he was talking from. It was a long talk about how he, with his official world-renowned language designer hat on, is not convinced types can demonstrate the strongest advantage in programming and isn't including them in his language [1].
Now that is a very easy opinion to disagree with and I doubt Rich is even particularly dogmatic about the idea, but it is an expert opinion being delivered by an expert who is supremely qualified in his field.
[0] And, as an aside, I'm not going to pursue it but you're attempting to justify dismissing a medical belief based on knowledge in an unrelated field - physics.
[1] Although, as he is proud to point out, if you want a new language feature in Clojure you can add it in a library - as Ambrose has with Typed Clojure.
> Homeopathy is very complex
But it's not complex at all; a better word is "elaborate". And it doesn't matter how elaborate a system spun from incorrect premises is, if the premises fall, the whole thing does, and homeopathy's premises are easily dismissed.
Very basic tenets of homeopathy involve things like excessive dilution to the point that mere molecules of an active ingredient remain, but which somehow attach "memories" to water molecules to achieve their effects.
Atomic physics points out that this is nonsense. And medical knowledge is under-girded by physics, obviously, so it's not unrelated.
----
We can keep torturing the analogy if you like, but at the end of the day, Hickey's experience is not in static typing. His original background was in C++/Java, which have much simpler type systems, unlike Haskell/ML/Rust/Scala/Swift/etc.
Many people in the static typing world seem to think his criticism is just not that deep or subtle. Unnamed union types exist, existed at the time of Maybe Not, and just represent a different set of tradeoffs than named wrapper ones like Maybe. (Mostly around being explicit.)
It plays well at the conj, but most Clojurians are also inexperienced with modern type systems.