[Recorded at Strange Loop conference (https://thestrangeloop.com) in St. Louis, MO, Oct 2013.]
It's hard to find a topic that divides programming language enthusiasts more than the issue of static typing. To about one half of the community, types are a godsend. They provide structure to organize systems, and reduce the tedium of having to write unit tests. They prevent classes of runtime errors, make IDEs more helpful and provide a safety net for refactorings. To the other half, static types are pointless ceremony or worse. They limit the freedom of expression, are in the way of rapid prototyping, and make program code bulkier. Static types tend to increase the complexity of languages and their compilers and making sense of opaque type error message is often an exercise in frustration.
Personally I am in the camp of static type advocates, even though I respect the opinions of the static type antagonists and sympathize with them. The question is: What needs to happen to make static typing less controversial…