Scala, now, is the tiger that’s going to kill Java. Because their [type-talisman] argument now has become a paradox, similar to the Paul Graham Blub Paradox thing, right? Because they’re like, “Well, we need static typing in order to engineer good systems. It’s simply not possible otherwise.”
The Scala people come in and they go: “Your type system suuuuuucks. It’s not sound. It’s not safe. It’s not complete. You’re casting your way around it. It doesn’t actually prevent this large class of bugs. How many times have you written
catch (NullPointerException x) ...in Java? Our type system doesn’t allow [things like] that.”
Our type system does what you said your type system was doing.
So, therefore, you should be using it! ∴
And the Java people look at it and go: “Wehellll… (cough cough)… I mean, yeah, I mean… (*ahem*)” (running finger under collar, as if sweating profusely) They say, “Welllll… you know… it’s awfully… cummmmmbersome… I…”
“We can actually get around the problems in practice that you guys say your type system is solving through Good Engineering Practices.”
(laughter begins to grow)
HA!!! (I point accusingly at the audience, and there’s more laughter)
So Scala is creating a real problem for [Java’s] static typing camp now. Because their last little bastion of why they’re using it, the whole tigers argument, they’re like, “Ah, well… we… we keep shotguns in our house.” [This is what they’ve been reduced to.]
So back to dynamic languages!