<< Sun Loves Jython Too | Home | Here Comes The Cute Logo ... >>

Taking The J Off The JVM

(Via Slashdot.)

Kas Thomas, Analyst at CMS Watch: Sun Microsystems CEO Jonathan Schwartz, speaking at the SugarCRM Customer and Developer Conference earlier this month, made a pronouncement that went largely unnoticed by industry pundits. "I think what you'll see from Sun," Schwartz remarked, "is that we're just going to take the 'J' off the 'JVM' and just make it a 'VM'."

This is the first time I've seen this quote. Slashdot used the quote in the context of Sun's hiring of the lead Jython developer. Although I cheered the news for Python and Jython's sake, I'm not sure how to react to this quote as a Java developer.

I guess I should accept it as something inevitable. The JVM is a pretty good runtime engine, and it seems a waste to keep it all to Java itself.

But the argument can also go the other way around. Java is a decent language, and it seems a waste to target it only to the JVM. I've seen three very public attempts at targeting Java to other platforms:

  • The GNU gcj project, which added a Java front end to the GCC compiler collection, so that we can target Java programs directly for the x86 platform.
  • Google's Android project, which targets Java program for the register-based vertual machine called Dalvik
  • The IKVM project, which targets Java programs for the .NET runtime

I think as main stream scripting languages crowd into the JVM, Java the language needs to do the opposite—spreading out to other runtimes.

I think in the long term, Java should not be expected to be the most performant language on the JVM, as it is today, for Java used to be a strictly interpreted and slow language just like the other scripting languages. As Java's performance was boosted over the years, so will the other scripting languages'.

Java the language needs to seek new living spaces, new runtimes, and new places where it will shine.

That, or, in five years we'll all need to learn a new language. (In case you haven't figured it out, Java the language is no longer strategic to Sun.)

Tags :


Re: Taking The J Off The JVM

I think that the GWT also uses the Java syntax to produce Javascript.

There certainly is a duality: on the one hand, Java is becoming the "assembly language" for the JVM; on the other hand, (re: GWT, Android), it is sort of a de facto language. I've blogged on this as Lingua Franca.

Re: Taking The J Off The JVM

I wonder if this means the root of the object hierarchy will no longer be java.lang.Object.

Re: Taking The J Off The JVM

My friend and colleague Geert Bevin is actually giving a talk at JavaOne related to the idea of "Java language as interface" called "Boldly Go Where the Java™ Programming Language Has Never Gone Before" (TS-6213). It's going cover examples like Terracotta (concurrency), RIFE (continuations), Android (mobile), and GWT (web).

Re: Taking The J Off The JVM

I applaud this move. I've been into JRuby for two years now, and have found uses for it I never even would have considered in advance. At first I saw embedding Ruby into my Java program as a simple scripting mechanism (tests, Maven plugins, etc) - but now have used it as a full-blow replacement for Java the language in a couple projects. Bundle that with Terracotta, and you have a massively scalable "Ruby" project running on the JVM - not a speck of Java required.

Re: Taking The J Off The JVM

When I started learning Java I first saw it as a programming language with a set of core libraries. No I see three parts:
  • The JVM. The JVM is the base for a couple of languages, and GCJ can compile Bytecode in native machine code as well (e.g. Eclipse). So we can eliminate the JVM if we want. And take a look at the Da Vinci Machine: http://openjdk.java.net/projects/mlvm/
  • The language itself. Java is THE major language for the JVM, but new languages like Groovy, JRuby, Scala, Jython are coming. This is the same way Microsoft went with languages for the .NET platform like C#, VB.NET, F#, IronPython.
  • Libraries. This is the heart of the Java ecosystem and the strongest argument for Java IMHO. We find libraries for every task and can integrate every existing dll/so via Wrappers as well.
Christian

Add a comment Send a TrackBack