Some of the dynamic programmer arguments sound like if static typing is a replacement for unit testing.
"There’s no replacement for testing, and unit tests find more issues than the compiler ever could."
"Static typing only catches some bugs, and you can’t trust the compiler to do your testing" - here's a breakthrough: use static typing AND unit testing!
"Just because the code compiles doesn't mean it runs."
"The compiler doesn't stop you from writing bad code."
These seem more like smart-ass knee-jerk responses than sound argument. Just because you type something in python doesn't mean it runs; typing something to run in a interpreter doesn't stop you from writing bad code.
"Debugging overly complex object hierarchies is unbearable"
I think this is mitigated by good IDEs.
"Dynamic languages are easier to read because you write less code"
This could be an argument. But for static typing with type inference, the extra code will be in variable declaration and type declaration.
Dynamic languages definitely have their purpose, and I'm starting to believe that its prototypes and scripting.
"Just because the code compiles doesn't mean it runs." "The compiler doesn't stop you from writing bad code." These seem more like smart-ass knee-jerk responses than sound argument. Just because you type something in python doesn't mean it runs; typing something to run in a interpreter doesn't stop you from writing bad code.
"Debugging overly complex object hierarchies is unbearable" I think this is mitigated by good IDEs.
"Dynamic languages are easier to read because you write less code" This could be an argument. But for static typing with type inference, the extra code will be in variable declaration and type declaration.
Dynamic languages definitely have their purpose, and I'm starting to believe that its prototypes and scripting.