Changing the philosophy of a programming language, especially one with existing applications of considerable size, is not a task with a high likelihood of success. In this paper, rather than starting from a static type system and trying to squeeze Erlang into it, we followed a different approach.
I've always wondered why people still try to shoehorn type systems into dynamic languages. So, why isn't there a Dialyzer for Ruby or Python or JS?
There are type inspection tools for JS - Webstorm has one and then there is the open source tern.js and facebook's flow. I imagine in erlang it's a bit easier to infer types in erlang because it's immutable and because functions don't just take whatever amount of arguments (like in JS). I'd say erlang is not as dynamic as JS.
The research around erlang is due to the fact that it's heavily backed by Ericsson and the university in Uppsala (it's common for Uppsala master theses to be erlang-related). The other languages have more "neutral" origins.
Dialyzer is a really nice tool for Erlang. I think Python might be getting something similar in the coming revisions but Erlang has had it for a while.
Here is a more concise and approachable intro on the topic:
I've always wondered why people still try to shoehorn type systems into dynamic languages. So, why isn't there a Dialyzer for Ruby or Python or JS?