I don’t know how old it really is, but certainly for the last decade at least, since the rise of perl and Java, there’s been a constant debate about “static” versus “dynamic” typing systems.
I’ve seemingly flipped back and forth myself. I spent the ’90s doing things like tcl and perl hacking, started full-time in Java in ‘99, and even switched an entire company off Python and on to Java1. After that, Ruby snuck in to solve some of the frustrations of Java, and before I knew it I was doing all of my work in it. Then came Haskell. From the “usefulness of the type system” point of view, Haskell is really on the opposite end of the spectrum from Java, with Ruby in the middle, but you have to be somewhat less naïve than average to see this.
Fortunately we’ve got a new contribution to the field: Chris Smith’s What to Know Before Debating Type Systems. It’s really only the very start of what one should know about this, but a great start it is.
I suppose the shame of that is somewhat mitigated by having shortly afterwards torpedoed proposals to use Struts, mostly by pointing out that XML is still code, and thus we ended up with more code that was harder to maintain. That battle also continues into the Ruby on Rails world, but that’s a story for another day.↩