This isn't a great write-up for reasons explained here: <a href="https://gist.github.com/non/ec48b0a7343db8291b92#gistcomment-1450054" rel="nofollow">https://gist.github.com/non/ec48b0a7343db8291b92#gistcomment...</a><p>It also assumes all static typing is nominal typing, when structural static types also exist and don't lead to Java-like class overload.
The author seems to conflate static typing with class-based typing for much of this. Languages like Haskell and TypeScript (and I thought Scala?) are statically typed, but have a concept of structural types that don't require you to use classes at all. In fact this static duck-typing is, I'm pretty sure, one of Haskell's most-advertised features.