Multi-Language VMs
Oct 15th, 2007 by phil
This is a short followup to my post on Java’s decline. One of the issues brought up in the comments is that Java as a platform potentially has more staying power than Java the programming language. The JVM is a solid foundation for building languages on, so the argument goes, and a new language that runs on the JVM has access to the plethora of libraries that have been written for Java. This should be a huge boost for a new language trying to get off the ground.
In fact, Ted Neward recently gave a talk entitled “The future will be about programming languages” in which he made this argument (hat tip: deans4j). According to Ted, the advent of general purpose VMs and their supporting libraries means that language development is easier than ever and the future is all about programming languages. It is an entertaining talk.
Lua developer Mike Pall has a different take on the issue:
Both the CLR and the JVM are designed and optimized for their primary languages (C# and Java). The impedance mismatch is too high for efficient execution of any language with different semantics (in particular most dynamic languages). Neither the data model nor the code model is at the right abstraction level. Performance suffers (badly).
I think that Mike is right, but I don’t have firsthand experience in the matter. Projects like JRuby and Groovy have managed to overcome the impedance mismatch with some success.
I think that Ted is right insofar as the future is about programming languages, but I think the reasons have as much to do with culture as technology. What do you think?




