Mirah, an Expressive JVM Language
Google Tech Talk
July 28, 2010
Presented by Charles Oliver Nutter and John Woodell.
Much has been made of having more expressive languages for the JVM. The recent explosion of interest in alternative JVM languages has shown there's a need for something better. But have Scala, Groovy, Fantom achieved this goal?
We'll look at Mirah, which attempts to implement Ruby's apparent features directly atop JVM types and code. In each case there have been gains and losses.
Ruby often provides beautiful abstractions, but sometimes requires odd things of the JVM that influence performance. The dynamic capabilities are incredibly expressive, but we often need more static structure to enforce typing guarantees or integrate with the platform. On top of all this, much of Ruby's dynamism makes it very difficult to optimize on the JVM. Can we get those features in another way?
Mirah may be one answer. It takes as a starting point the "apparent features" of Ruby, and as an end point the basic structures of the JVM, and attempts to tie them directly together. With a fairly simple compiler, Mirah can almost mimic the most common Ruby abstractions, but with static typing guarantees and no runtime library requirements. It provides a Ruby-like way to write Java, the ultimate goal of so many JVM languages.
Charles Oliver Nutter has been programming most of his life, as a Java developer for the past decade and as a JRuby developer for over four years. He co-leads the JRuby project, an effort to bring the beauty of Ruby and the power of the JVM together. Charles believes in open source and open standards and hopes his efforts on JRuby and other languages will ensure the JVM remains the preferred open-source managed runtime for many years to come.