You Can't Educate Pork
By gbracha on Oct 07, 2005
... but we tried anyway!
The picture above shows me and Azul CTO Gil Tene explaining subtleties of object orientation to some pigs in Aarhus, Denmark. We were in Aarhus for JAOO, which is one of the best industrial conferences around. Check it out.
I gave a talk about the invokedynamic bytecode - here are the slides.
My previous entry about invokedynamic prompted a bunch of comments, most of which I cannot address.
Someone was upset that I didn't mention Ruby. No slight intended. On the contrary, I'm a great Smalltalk fan, and as I've mentioned in previous posts, Ruby is pretty much like Smalltalk, with a few minor differences. So clearly, Ruby is a fine scripting language, and a Ruby implementation on a JVM could benefit considerably from the invokedynamic instruction.
The same applies to E. I apologize for mischaracterizing its inheritance semantics. One might need to create new classes on the fly, but the basic lookup process should still follow a linear path up the inheritance chain - much like in mixin based inheritance.
In all these cases, supporting mixins in the JVM, a la Strongtalk, would really help as well - but though I first suggested that back in 1997, I don't expect that to happen. It is a far more radical change to JVMs than adding the invokedynamic instruction.
The other big change that would be very helpful would be support for more extensive reflective changes to existing classes. Discussing such "Hotswapping" deserves another post, and will have to wait.