From http://www.smashingmagazine.com/2013/04/18/introduction-to-programming-type-systems/

So, which is better?

The static programmer says:The dynamic programmer says:
“Static typing catches bugs with the compiler and keeps you out of trouble.”“Static typing only catches some bugs, and you can’t trust the compiler to do your testing.”
“Static languages are easier to read because they’re more explicit about what the code does.”“Dynamic languages are easier to read because you write less code.”
“At least I know that the code compiles.”“Just because the code compiles doesn’t mean it runs.”
“I trust the static typing to make sure my team writes good code.”“The compiler doesn’t stop you from writing bad code.”
“Debugging an unknown object is impossible.”“Debugging overly complex object hierarchies is unbearable.”
“Compiler bugs happen at midmorning in my office; runtime bugs happen at midnight for my customers.”“There’s no replacement for testing, and unit tests find more issues than the compiler ever could.”