BT

The Resurgence of Java the Platform

| by Scott Delap on Aug 15, 2006. Estimated reading time: 1 minute |
Way back in December of 2000 noted columnist Jon Udell covered the language-agnosticism of the Microsoft CLR versus the JVM.

Since Java appeared, it has been clear that Java-the-language was, theoretically, just the preferred interface to the Java Virtual Machine, in the same way that C# is a preferred interface to the .NET Common Language Runtime. Yet, Sun, itself, has never chosen to emphasize this point. It's been left to an intrepid band of independent developers to work out ways to integrate other languages with the JVM.
A quick search for "JVM languages" on Google turns up a number of interesting lists of languages running on the JVM such as:
  • Tcl
  • Lisp
  • Basic
  • Smalltalk
  • Groovy
  • JRuby
Six years after Udell highlighted the topic, Java the Platform is beginning to come out of the shadows of its more well known counterpart Java the Language. Graham Hamilton blogged on the concept a few years back. More recently at JavaOne this year it was announced that Sun will be bringing support for Visual Basic to the JVM through its Project Semplice. Projects such as Groovy and JRuby have also highlighted using the JVM for more dynamic languages.  Sun is looking into providing more support for such projects in Java 7. This effort has been criticized by some developers however as being too little too late:

Meanwhile, Cedric Beust, a developer at Google, in Mountain View, Calif., said of Sun's plans to add more support for dynamic languages: "I'm afraid it's too little—and probably too late as well. The only added support is one bytecode in the virtual machine that—while a big progress for scripting languages—still requires a lot of work from language developers interested in writing a JVM [Java virtual machine]-based scripting language."

Rate this Article

Relevance
Style

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

program in scala using jms, hibernate , jta and a servlet engine by Joost de Vries

It's a great way to go: The Java VM can provide the basis for a great software eco-system that is language agnostic.
Java the language will not be able to incorporate nimbly new language features; there's simply to much code out there and the risk that a new feature will not be succesful is maybe too great.
But other languages on the JVM can try out new features by a process of evolutionary selection.
One would be able to use new language features on the one hand and be able to do anything and connect to anything in this world since there's this great world of software libraries and frameworks out there.
My favourite language at the moment would be Scala: type inferencing, multi methods, pattern matching, higher order functions, currying etc etc.
To me that's an exciting future for the JVM.

But I'm not sure the open-source community will go this way; on the one hand because the JVM is under Sun's control and on the other hand maybe because all this great software is already out there; it's hard to come up with something new and the low-hanging fruit has already been picked....
Another risk is that this will lead to even more fragmentation in the Java space. There's this economy of size; if you make sure your developers know Java your company can do a lot and you surely will be able to find Java developers because there are a lot out there. I'm not sure this will remain this way with lots of JVM compatible languages. On the other hand probably just about three languages will have a significant following.

So why hasn't this happened yet? In my experience it has been a rite of passage for Java developers to discover excitedly the linked page full of programming languages for the JVM by this Robert Tolksdorff... and not do anything with it. I think the page has been around since 1997.

Java the platform is being reborn by Charles Nutter

I think this post come at just the right time. Java has always been treated as an immutable trinity of language, libraries, and VM. There has, however, been a recent and extremely successful push within Sun to remove Java the language as a requirement. Everyone who's ever done Java work knows that the VM is an outstanding piece of work, and the collection of libraries worldwide for Java rivals or exceeds even that of C. Java as a language-independent platform has a much, much greater potential than the trinity these days.

That's what brought me to JRuby. Ruby is certainly my favorite language now, a beautiful mix of syntax and features that enables not only powerful and simple code, but really fun and entertaining development as well. Ruby is without a doubt my favorite dyntyped language. By that same token, I still love Java; its design, rigidity, and extensive tool support make it an extremely powerful systems development language. By marrying the two together, we create an analog to the typical UNIX environment with your scripting language of choice: the nuts and bolts are written in a strict system language with most of the agile, useful work happening in a more dynamic and abstract language.

I've recently been pushing JRuby faster and faster, on performance, Ruby application compatibility and support, and extensibility. We've improved base performance by almost 1/4 in the past couple months, we have large scale refactoring and improvement efforts underway, and we continue to improve our compatibility with C Ruby. The lure of Rails or Rake or Mongrel on the JVM with all the Java platform has to offer is extremely attractive to me and to many others.

The bottom line is that Sun really does "get it" when it comes to the dyntyped language revolution, and the wheels are in motion to make good on their JavaOne promise that Java should be a "multilingual" platform.

Re: Java the platform is being reborn by Floyd Marinescu

By marrying the two together, we create an analog to the typical UNIX environment with your scripting language of choice: the nuts and bolts are written in a strict system language with most of the agile, useful work happening in a more dynamic and abstract language.
Thanks for providing this update Charles. I love this metaphor as well. Indeed scripting languages came from shell scripting - scripting your underlying environment. Moving up the stack, the idea of scripting languages used to build applications by scripting Java infrastructure underneath is a compelling picture.

One thing I've been wondering about that emerging practice is - at what tier should java end and a scripting language begin? The domain model? The services layer? Or everything (ala Rails)?

Doesnt this mean Java is washed up? by j c

If someone took my car and decided to make a lawn ornament out of it. I would think it didnt run.

Im glad line numbered Basic can run in the JVM, I really am. But I dont think that qualifies as a resurgence of the Java platform.

Either the folks doing Ruby in the cross platform Ruby interpreter are REALLY dumb or they dont need the VM. Are we guessing or betting that they will eventually see things like the Java folks do and learn to be like us?

I really dont see any Ruby developers clamouring for the JVM to run their stuff. What gives? This seems more like java developers clamouring for the Ruby guys to run their stuff on Java.

Maybe it will work but given the CLR joke, I dont think that its really that important. Why wasnt the Java VM built on top of the Smalltalk VM? It was far superior at the time.

Re: Doesnt this mean Java is washed up? by Cameron Purdy

> Why wasnt the Java VM built on top of the Smalltalk VM? It was far superior at the time.

There was no "the" in Smalltalk.

Also, Smalltalk has some elegant design choices that unfortunately limit the options for runtime optimization, while Java (by and large) has a much clearer compilation (or byte code translation) to machine code.

Peace.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

5 Discuss
BT