That sounds a pretty good description of Go, so I'm wondering what his point is in the first place.
"The module Data.Dynamic uses Typeable for an implementation of dynamics."
http://hackage.haskell.org/package/base-4.7.0.0/docs/Data-Ty...
Or more specifically, how non-intuitive it is to use the IO stuff
I don't care what it uses, or what is it called, I care about being able to use it with what I know
So yeah, I'll go for Go instead of Haskell
It is unfamiliar, but if you use static typing, at least reap the benefits of better error checking, no runtime null dereferences, etc.
I think when the first dynamic programing language was invented, the loose typing system must be thought as a big advantage.
Type checking is necessary in some cases, but I really enjoy dynamic typing a lot. So I think a bit tradeoff like this is acceptable. After all, we have to tradeoff everywhere when it comes to computer science such as the time-space tradeoff of an algorithm.
Once you use a good static type system (ML, OCaml, Haskell) you see that dynamic typing isn't responsible for the joy, but the ability to express rich ideas without repeating redundant type declarations.