the Da Vinci Project: Running more languages on the JVM

by Amit

Originally, Java started as the only language that could be used to generate code to run on the Java Virtual Machine (JVM). However, we have had Java implementations of Python and Ruby- Jython and jRuby respectively which run on the JVM.

Now, with the Da Vinci Machine project, things are going to take a further step ahead and we shall possibly see more languages implemented to be run on the JVM.

One of earliest coverages of the project is:

The mission of the project reproduced from the project page:

We are extending the JVM with first-class architectural support for languages other than Java, especially dynamic languages. 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.

Our emphasis is on completing the existing bytecode and execution architecture with general purpose extensions, as opposed to a new feature for just one language, or adjoining an unrelated new execution model.

We want the new languages to co-exist gracefully with Java in the JVM, and to benefit (like Java) from its powerful and mature technologies.

We are looking to remove “pain points” already observed by implementors of successful or influential languages, as opposed to attempting more speculative work on unproven features or niche languages.

This paper New Languages on the JVM: Pain Points and Remedies gives a nice background information about the project.