Главный разработчик Ceylon рассуждает о прелестях статической типизации.
http://ceylon-lang.org/blog/2013/11/25/types-and-expressiveness/
TL;DR: парадокс в том, что вроде бы более свободная и менее ограничивающая динамическая типизация накладывает на разработчика API более строгие требования по документированию кода. Чтобы читатели кода не догадывались, как могут повести себя функции, что они принимают и что возвращают, разработчик должен всегда следить за актуальностью информации, которая в статических языках частично прошита на уровне системы типов и автоматически обновляется при рефакторинге.