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.” |