Michael Feathers has an interesting post: Is Static Typing a Form of Bad Coupling?
To me, it’s a tradeoff between error checking and flexibility. Error checking takes on greater importance in shrink wrap software and libraries and flexibility tends to be more important for web apps.
I also think that for error checking, unit tests are more effective than type checking, but they of course require an even greater time investment.
What do you think?