IBM Offers Tech Preview of OMR Integrated with Ruby VM
IBM has announced a technology preview of its soon-to-be open sourced OMR toolkit to demonstrate how this internal adaptation of its own J9 Virtual Machine (VM) could be used with the Ruby virtual machine (VM).
The OMR project is an attempt by IBM to develop "reusable and easily consumable core components for building all kinds of language runtimes, from Java to Ruby to Smalltalk and beyond," the company said. IBM is putting together the OMR from parts of the J9 JVM in its own implementation of the Java platform.
IBM wants to divorce these components from "the influence of Java semantics," so that developers can use them to enhance different language runtimes. As Mark Stoodley, senior software developer at IBM Canada, told attendees at the 2015 JVM Language Summit, IBM is essentially transplanting J9 Java capabilities to other runtimes.
It's about unlocking the VM within the JVM, he said.
Languages running on the JVM, such as Ruby, Python, jRuby, and Jython, leverage the massive ecosystem of Java programmers, developers and code, Stoodley explained, and provide great interoperability with Java and great JIT compiler and Garbage Collection (GC) performance. There are currently about 56 languages that run on the JVM, he noted.
The problem is, this development divides language communities, which has led to tradeoffs. "Many of these existing languages, like Ruby and Python, have a vibrant non-JVM-based community," Stoodley said, "and if you are forced to chose between two different runtime implementations to run your code, that can make for some quite stark trade-off choices. You may want high performance, but you may not be able to run all the extension modules that make that community vibrant and great ... Even bridging this divide would mean migrating an entire community ..."
That's a problem IBM hopes to solve with the OMR project.
"IBM has deep interest in creating truly vibrant cloud and Platform-as-a-Service (PaaS) environments, where universal access to all sorts of language runtimes must become the new normal," the company explained on GitHub, where the Ruby+OMR tech preview is hosted. "This polyglot world means that infrastructure, tools, hardware and software all need to be able to seamlessly work together with a consistent user experience so that developers can choose the best language for the job rather than the language with the right compatibilities for the environment. With common runtime components, everyone (including IBM) can all better leverage our efforts to make runtimes better, faster, more capable and more integrated to accelerate bringing not just the promise of cloud computing but also the reality that developers should expect from a cloud computing environment."
The Ruby preview represents the project's first public proof point, and it demonstrates new GC, JIT compiler and method profiling capabilities enabled by OMR. It's provided as a docker image that includes Ubuntu 12.10 (Wily Werewolf) and preinstalled Ruby 2.2.3 (the most recent release). IBM has included a monitoring agent that can be used with IBM Health Center "to visualize Ruby method profiles and garbage collection performance" while the Ruby app is running.
When it does release the project to open source, IBM is considering making it available through the Eclipse Foundation (which was, itself, once and IBM internal project).