Free Newsletters
Technology & Business Daily

InfoWorld
Log-in | Register

Sun's Da Vinci Machine broadens JVM coverage

Intent is to make it easier for more languages to run on virtual machines


Sun 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 multi-language renaissance for the Java Virtual Machine architecture." The project features prototype JVM extensions to run non-Java languages efficiently as well as architectural support.

Although many languages besides Java have been implemented on the JVM, including Ruby, the intent is to make the JVM 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 five years old has some kind of implementation on the JVM," he said.  

The JVM allows programs using it to run on any platform supporting the JVM; it provides hardware and OS independence. Benefits like flexible online code loading and online garbage collection, in which objects are moved out of the way automatically rather than having to be saved manually, are featured.

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, in being 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. Ways need to be found 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.

Capabilities of Da Vinci Machine are planned for inclusion in the upcoming JDK (Java SE Development Kit) 7, which is based on Java Platform, Standard Edition 7. Sun could 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.

Java developers questioned liked the idea of Da Vinci Machine.

"[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)]." The CLR has been likened to a virtual machine supporting multiple languages. "I think Java's a great language, but I think people like to program differently, whether it's a functional language or a scripting language," he said. Hinojosa said has been running JRuby, Groovy, and Java on the JVM.

Developer Alex Miller, tech lead at Java clustering technology vendor Terracotta, also agreed with the Da Vinci Machine effort.

"There are lots of people writing and running dynamic languages on the JVM these days, and there are certain things that are complicated or obscure with the use of [dynamic] languages," Miller said.

A lot of dynamic languages differ from Java in that they leverage functions rather than objects, Miller said. Making them work on the JVM requires extra work, he said.

Sun's JRuby project, meanwhile, is getting an upgrade. Version 1.1, due within a month, features a full compiler to greatly improve performance, Nutter said.

Paul Krill is editor at large at InfoWorld.

Talkback:

commentPost a Comment

 

MOST COMMENTS

 
 





BRINGING PERFORMANCE VALIDATION "INTO THE LIFECYCLE"
Today's enterprise apps are complex and ever-changing, which makes delivering high performance difficult. By virtualizing the behavior of application services and data in a VSE, teams can answer this challenge with validation best practices and test tools to ensure solid performance throughout the lifecycle. Register now to attend this webcast! Sponsor: ITKO

»  Click here to view this Webcast
  The Data Protection You've Been Looking For
Enterprise data is of supreme importance. If you can't find it quickly, it's worthless. If you lose it, it's a crisis. This IT Strategy Guide explores how to keep your data safe.

»  Click here to download now

- Special Advertising Partners -
WHITE PAPERS
 

» Technology White Papers Library

Technology White Papers by Topic

Technology White Papers E-mail Alert

Find out when the latest white paper is available:
 
 
INFOWORLD MARKETPLACE
 
» BUY A LINK NOW
 
 

Video

 
 
 

Podcasts

 
 
 

 

Columnists

 
 
 

Resource Center


Ads by techwords beta  [See your link here]
 




Sponsored Technology Links

 
 
 HOME  NEWS  BLOGS  PODCASTS  VIDEOS  TECHNOLOGIES  TEST CENTER  EVENTS  CAREERS  IT EXEC-CONNECT   About | Advertise | Awards | RSS | Contact Us 

Copyright © 2008, Reprints, Permissions, Licensing, IDG Network, Privacy Policy, Terms of Service.
All Rights reserved. InfoWorld is a leading publisher of technology information and product reviews on topics including viruses,
phishing, worms, firewalls, security, servers, storage, networking, wireless, databases, and web services.

CIO :: ComputerWorld :: CSO :: Demo :: GamePro :: Games.net :: IDG Connect :: IDG World Expo
Industry Standard :: IT World :: JavaWorld :: LinuxWorld :: MacUser :: Macworld :: Network World :: PC World :: Playlist