Both dynamic languages and static languages have their place. Personally, I'm a big fan of an iterative refinement process where an algorithm prototype in a dynamic language is gradually transformed into a production implementation in a typed, fast static language.