
An Introduction To Programming Type Systems  - Ashuu
http://coding.smashingmagazine.com/2013/04/18/introduction-to-programming-type-systems/
======
fabriceleal
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.

