Multi-Language VM

by Dejan Bosanac

OpenJDK community has a new project, Multi-Language VM (or just mlvm). It is announced by John Rose, from Sun, on the announcement list. The focus of the project will be to prototype JVM features beneficial for dynamic languages and remove "pain points" that current dynamic language developers have with standard JVM.

Here's the snippet from the announcement:

This project will be open for prototyping
JVM features aimed at efficiently supporting
languages other than Java.

The emphasis will be 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.

The emphasis will also be on work which removes
"pain points" already observed by implementors
of successful or influential languages, as opposed
to more speculative work on unproven features or
niche languages.

It is definitely a step in the right direction for making Java a true multi-language development platform.


Jeremiah Foster
2007-10-17 03:50:53
Why not just use Parrot?
2007-10-17 04:07:52
I used little bit Groovy and it has some nice features but it was dog slow. I checked another alternatives as JRuby, Jython and to tell you the true I don't like dynamic scripting languages but Jython looks the best of the 3 and the more faster. But still this scripting languages dog slow. Also why focus on this multi-language VM when the JVM and JDK need more priority stuff as the consumer JRE, Lots of bugs, JDK7 new features, Java on the desktop, embeeded, realtime and tons of critical features the JVM and Java language users are asking for years. I really dont need an scripting language, I think most of all Java developers will say the same(if I'm wrong correct me). So as I said Java comunity have to put more power and focus on the things that really needs Java and not in ideas that a teen age geek asking for the next best thing as an scripting language on top of the JVM.

this is just my 2c.

simon hibbs
2007-10-17 11:08:19
@Jeff: I think you'll find the main reason dynamic languages are so much slower in the JVM is exactly because the JVM offers no support for them. Many of the features that make them so easy to program in have to be implemented using ugly hacks and emulated behaviours because the JVM has been untill now a religiously static environment.

Which is exactly what this effort is designed to fix, and why it's such an important move in the right direction.

Kudos to Microsoft though for putting dynamic language support right in the middle of their agenda and forcing Sun's hand. Sun have had every opportunity to keep the JVM an attractive, modern environemnt and badly dropped the ball in this and many other areas. This should have happened 3 years ago, maybe more. At last they're trying to build momentum again in a game they should always have dominated.

2007-10-17 17:04:27
simon hibbs, You are right, Maybe I should give more chance to scripting languages. But what happend for example with the design of Jython and running on the multi-language vm? It will improve performance just like that or have to redesign something of Jython so it works better on the mlvm becuase as you said right now they are using ugly hacks?
2007-10-18 01:26:50
Jeremiah Hoster as a good point:
Why not just use Parrot?

I would prefer the idea of:
Why not just implement PIR?

PIR is the Parrot’s native assembly language with a touch of syntactic sugar. It would be nice to have 2 different strong communities competing and giving ideas how to better implement PIR. The compilers could be shared between bout of them.

Note: In the Scripting Programming area, the important is the short development/maintenance time and not the CPU/Memory performance. Other wise, we'd be working with the old nice C that is much faster then the remaining solution presented in here.

Denys Sene
2007-10-18 04:55:23
This sounds an interesting idea.

Another thing that makes sense to me is an effort to utilize a single VM for more than one simple program or application. This already exists for common Java VM, and is great because there area a lot of benefits on memory management and performance, and even the reuse of String intern table.
Now, I think that in the mlvm, this feature should be native and also an IPC mechanism so all supported languages in this VM could interoperate.

Simon Hibbs
2007-10-18 11:45:06
@Jeff: I think you're right, Jython would need to be re-engineered to take advantage of any new JVM features. This would be very much worthwhile though, as it would not only improve Jython's performance but once it's done it should also make it much easier for Jython to keep up to date with developments in Python.

It will be very interesting to compare the compatibility of Jython and Iron Python (Python on .NET) in a year to 18 month's time.

Pradeep Bhat
2007-10-22 05:56:51
So now Sun is understanding the limitations and media hype of Java??