The Da Vinci Machine

By Darryl K. Taft  |  Posted 2008-02-04 Print this article Print

The Ruby.NET project produced the Gardens Point Parser Generator, which was then used in other .Net language projects and found its way into Visual Studio, Kelly said. Yet, despite several ongoing Ruby development efforts, "there's no real potential for reuse from the different teams," he said.

"If we were to start this project today we'd be crazy not to use the DLR," Kelly said. "It's superior to the approach we adopted," but the DLR was not available when Kelly's effort started.

Meanwhile, Sun is working on its own approach to delivering new languages on the JVM (Java Virtual Machine). John Rose, a Sun engineer and lead of a Sun project known as the Da Vinci Machine, said his company "had to do something like the CLR."

The JVM provided flexible online code tooling, reflective access to classes and objects, lots of ancillary tools, good libraries and clever performance techniques, Rose said.

But some things have been missing that would enable other languages to run easily on the JVM, such as dynamic invocation, higher performance, lightweight method objects, continuations and stack introspection, and others, Rose said.

Enter the Da Vinci Machine.

"We are extending the JVM with first-class architectural support for languages other than Java, especially dynamic languages," said the mission statement for the Da Vinci Machine project on Sun's Web site. "This project will prototype a number of extensions to the JVM, so that it can run non-Java languages efficiently, with a performance level comparable to that of Java itself."

Rose said that he hopes this project will make the JVM useful for all language implementations. "We want first-class support [for other languages on the JVM]. I think of Java as a great systems programming language for these other languages."

Charles Nutter, a lead developer on the JRuby effort to create an implementation of Ruby for the JVM, said that until a year ago the JRuby implementation was fully interpreted, but as of November, "we had the compiler complete." It runs in two modes: AOT (ahead-of-time) and JIT (just-in-time) compiling.


Darryl K. Taft covers the development tools and developer-related issues beat from his office in Baltimore. He has more than 10 years of experience in the business and is always looking for the next scoop. Taft is a member of the Association for Computing Machinery (ACM) and was named 'one of the most active middleware reporters in the world' by The Middleware Co. He also has his own card in the 'Who's Who in Enterprise Java' deck.

Submit a Comment

Loading Comments...
Manage your Newsletters: Login   Register My Newsletters

Rocket Fuel