How invokedynamic just might save dynamic languages on the JVM

If you work with any of the next generation of languages hosted on the JVM--Groovy, Clojure, Jython, or JRuby--you might not have heard of JSR223 and JSR292, but you owe these documents a debt of gratitude. These JSRs specify extensions to the JVM that make it a happier place for dynamic languages. As anyone who has attempted to implement a scripting language will tell you, runtime environments and engines designed for statically typed languages like C++ and Java traditionally, have not gotten along well with the problems that dynamic languages bring to the runtime table. JSR292 extends the JVM with several new features; two of which promise increased speed and efficiency for dynamic languages: invokedynamic, and method handles.

Engine Yard was lucky enough to catch up with Thought Worker Ola Bini. Ola is a core committer to JRuby, and is an expert for the JSR292 working group. Ola sat down with us at the San Francisco JRuby meetup and gave us some technical insight on how the features specified in JSR292 will help dynamic languages for Java7.

Ola Bini "invokedynamic and JRuby" from Engine Yard on Vimeo.