2005/09/03

Virtual machines and multiple languages

A few years ago, I was giving seminars about object-oriented technology. It was an interesting exercice: a three-days seminar for IT wanting to get a glimpse of the object world: model, marketplace, technologies. My co-presenters handled object theory and 'thinking with objects' parts. My part was more about technology: what does it mean now to develop an object application ? which languages ? which frameworks ? So of course, I was talking about Java among other things, and I think that even in the JDK 1.1/1.2 days, there was always a slide titled "Java is actually three things'. Three things being: Java-the-language, Java-the-VM, Java-the-framework, with some examples of using picking only two (native compilers, dynamic languages over the JVM, non-standard classes replacing some part of java.*). And yesterday, I found an old post on ongoing mentioning a summit at Sun about dynamic languages over the JVM, with an interesting remark about Sun attitude on multi-language:
Java has a PR problem; while Microsoft marketed the .NET stuff as multi-language from day one, the fact that Java is a three-legged stool (language, JVM, libraries) kind of gets lost under the enveloping carpet of the one-word name “Java”. Partly that’s Sun’s fault; in the early days, the evangelists generally left the impression that anyone writing code in a language other than Java was a second-class citizen.
So true. Actually, I don't remember real openness or interest from Sun about dynamic languages before the release of .NET. Microsoft impact has really been positive in that area (not mentioning all the improvements at language level that came with 1.5). However, I'm not entirely sure this is only a PR problem. There are interesting papers by John Gough comparing JVM and CLR as a multi-language infrastructure, and I have memoires of interesting issues on the Kawa and Jython mailing-lists. And as it's said in one of the paper, you can't really blame Sun: Microsoft had this advantage of learning from the Java experience and having the multi-language issue in mind from the start. Even if I don't code in Java nor C# (or just for fun, for my toy projects) these days, I'm often fascinated by the modern virtual machines, and the perspective of being able to benefit from the huge work in JIT compilation, verification or threading performance with other (dynamic!) languages. Groovy. Oops. Not only

Comments: Post a Comment

<< Home

This page is powered by Blogger. Isn't yours?