A few of us had a discussion about the divide between advocates of static (meaning, types explicitly defined by the developer) typing and dynamic typing. We went over this for awhile on the Smalltalk IRC channel, and here's where I came down on it:
- Static advocates are convinced that dynamic typing will inevitably lead to type errors at runtime
- Dynamic advocates are convinced that static typing freezes your interfaces too soon, leading to a complete loss of flexibility
Of course, I fall on the dynamic side of that :) Having worked in both static and dynamic systems, I don't see the problem that static advocates fear - type errors are exceedingly rare in Smalltalk (I had them crop up in C far, far more often).