Presentation: Evolving the Java Platform
In this presentation recorded at QCon London 2008, Ola Bini talks about the current status of the JVM regarding languages running on top of it and the need to evolve in order to support dynamic languages.
Watch: Evolving the Java Platform (43 min.)
Bini presents the benefits of using a JVM, now that CPU cycles are cheap enough to afford GC, JIT, RTT: garbage collection, online code loading, reflection, JIT, tools, libraries, maturity, and others, concluding that the JVM is the best virtual machine in production.
After mentioning about 50 languages built on JVM (here is a research site that compiled a list of about 200 such languages), he talks about the needs high level languages have, which the JVM partially supports:
• Very late binding (runtime linking, typing, code gen)
• Automatic storage management (GC)
• Environmental queries (reflection, stack walking)
• Exotic primitives (tailcalls, bignums, call/cc)
• Code management integrated with execution
• Robust handling of incorrect inputs
• Helpful runtime support libraries (regexps, math, ...)
• A compiler (JIT and/or AOT) that understands it all
After that, Bini talks about what’s really missing from the JVM:
• Dynamic invocation
• As always, higher performance
• Lightweight method objects
• Lightweight bytecode loading
• Continuations and stack introspection
• Tails calls and tail recursion
• Tuples and value-oriented types
• Immediate wrapper types
• Symbolic freedom (non-Java names)
Bini continues his presentation explaining what actually each feature is and evaluating the difficulties to be encountered if they are implemented in the JVM mentioning that they are currently implemented in the DaVinci virtual machine, a multi-language research JVM targeted especially at dynamic languages.
During the rest of the presentation Bini talks about JRuby, the progress done so far, JSR 292, and answers questions.