Sun's Da Vinci Machine broadens JVM language support
InfoWorld - Sun Microsystems Inc. is working on technology to make it easier to run different languages on the Java Virtual Machine. Called the Da Vinci Machine, the project is being described by Sun as "a multilanguage renaissance for the Java Virtual Machine architecture." The project features prototype JVM extensions to run non-Java languages efficiently.
Although many languages besides Java have been implemented on the JVM, including Ruby, the intent is to make the JVM even more compatible with other languages, said Charles Nutter, core developer of JRuby, which is a version of Ruby to run on the JVM. "For the most part, almost every language that's more than 5 years old has some kind of implementation on the JVM," he said.
But support does not automatically mean that all languages run equally well on the JVM.
The Da Vinci Machine is intended to overcome obstacles like mismatches between a source language's design patterns and JVM capabilities. Because the JVM was designed for Java and Java favors some design patterns over others, implementers can find themselves dealing with these mismatches, Sun said.
"Specifically, the JVM was originally for Java, and many other languages have features unlike what Java provides. We need to find ways to support those features," said Nutter.
Some pain points to running new languages on the JVM include limitations on calling sequences and control stack management, finite inheritance and scaling problems when generating classes.
Nutter pointed out that Java, which is a statically typed language, differs from scripting languages like Ruby, which are dynamically typed. Thus, Java gives the JVM more clues about what code is going to be executed. Researchers need to find ways to let the JVM make the correct call for these languages, he said. In JRuby, this obstacle is addressed via a piece of code to inspect target operations.
Sun is planning to include some features of the Da Vinci Machine in the upcoming Java SE Development Kit (JDK) 7, which is based on Java Platform, Standard Edition 7. Sun would not provide a release date for JDK 7. It is not known how many Da Vinci features might actually get into JDK 7, Nutter said.
Da Vinci represents an experimental branch, or even a fork, of the JVM, said Nutter. He cautioned that fork in this case is not meant to carry the same negative connotations associated with forking of a platform.
Some Java developers liked the idea of the Da Vinci Machine.
The Da Vinci Machine "sounds like something I was thinking was going to happen and should have happened," said Daniel Hinojosa, an independent Java developer and a founder of the Albuquerque Java Users Group. "I think there's going to be a race between Java" and the Microsoft CLR (Common Language Runtime).
Reprinted with permission from
Story copyright 2006 InfoWorld Media Group, Inc. All rights reserved.
Java Virtual Machine
Additional Resources



White Papers & Webcasts
Extend, Replace, or Convert; which is the best way forward for COBOL Applications?
Download this white paper, free, compliments of Micro Focus!
Data in Action: Making the Planet Smarter
Register Now
Oracle Accelerate - Not Just Smart but Timely
Download Now!
Why BI is Ripe - Now! - For Businesses of Any Size
Download Now!
The Workday User Experience Video
Watch Workday's Creative Director, Scott Lietzke, discuss the business-centered design philosophy at Workday.
Business Process Framework Demo
Learn about Configurable Business Processes and Calculated Fields. Watch Now!
Rapid Implementation: The New Age of ERP
Download Now!
Manager Experience Demo
Go beyond self-service solutions to perform more effectively. Watch Now.

