In dynamic programming languages it is definitely easy to get shit done, at least initially.
However as a project progresses to the point where a lot of refactoring takes place and there's more than a handful of people working on it, a good static typing language will make sure that shit keeps on getting done and things won't break due to a subtle typing error. Things will be caught by the compiler even before you get running the test suite.
In other words, automatic program-correctness check is a crucial feature if project goes larger. And type check is actually one of the simplest, easiest and fastest way to archive that.
But most dynamic languages doesn't provide type-check. Really sad.
Adding type annotation on dynamic language is a kind of best mix of two worlds, and Julia seems pushing this approach even further - JIT static types from type annotation.
irb(main):001:0> 1 + "hello"
TypeError: String can't be coerced into Fixnum
from (irb):1:in `+'
from (irb):1
from /usr/bin/irb:12:in `<main>'