Avi Bryant makes the connection between JRuby, Ruby performance generally, and how fast dynamic languages can really be, e.g. the Strongtalk implementation.
As it happens, the Strongtalk VM would make an excellent basis for the next generation Ruby VM. Given that Sun still employs some of the original Strongtalk engineers, and has just hired the JRuby guys, maybe they can make that happen?It gets even better... Strongtalk was the precursor to the Java Hotspot runtime. Java is essentially already running a pretty good dynamic runtime under the hood. The language-specificness of the JVM just has to be peeled back a notch and Ruby (and Smalltalk, and Lisp) would be good to go. Or at least much better off than they are now.
Maybe a bit more than a notch. Please start peeling.
Then someone over at James Robertson's blog asks about the performance of a good dynamic dispatch mechanism relative to C++.
The line was crossed some time ago when the nature of most C++ applications on the hardware at the time was better suited to dynamic dispatch. When you talk about "C++" once again you have to talk about which implementation. Some C++ implementations have been able to do a more dynamic dispatch (i.e. again implement a significant dynamic language mechanism) in order to get better performance than the more traditional vector-based fixed offset indexing.In general, Smalltalk can do message dispatch faster than C++.Is that one of those in theory things?
Dynamic *will* continue to win more and more for most applications.