Thursday, November 15, 2007

Android, GWT, and Lingua Java

One can almost feel the Blogtomonous Collective try and wrap their minds around the Android SDK. Between the Mensa puzzle of the legal-speak and creative lure of the prize money, there is a lot to contemplate.

Looking back a week or so, there are some weird psychic fingerprints that led up to the announcement.

  • At the St Louis JUG, Andrew Prunicki presented a cool talk on the Javelin Stamp. This is a microcontroller that uses a Java-like syntax which compiles onto a JVM (of sorts). The VM doesn't have garbage collection. My theory is that it can't be licensed as true Java and so that the company chose the wonderfully clever name Javelin.
  • Eric "Photoshop till You Drop" Burke posted satire: Android shuns Java. The joke being, of course, that there is no way Android could shun Java: such a prediction would be as ill-fated as "Dewey defeats Truman". But Android does shun the JVM!
I think we are seeing an interesting dichotomy:
  • On one hand, JVM Tunneling implies that the JVM is The Thing. Scala, JRuby, Groovy, and others all run on the JVM. Java is being marginalized as merely one syntactic "view" of the virtual machine. It's not even the coolest view going these days.
  • On the other hand, Javelin Stamp, Android and the Google Web Toolkit make the case that the Java syntax is The Thing. It certainly looks like Google believes it is the Lingua franca of our time. Who cares what transformations take place, as long as we have the apple pie of "public class MyClass {}" !
Call it Lingua Java.

This just in: we are in interesting times.

3 comments:

Stefano said...

I think Android says the Java Bytecode IS THE THING, and I bet Android is able to convert jvm byte code generated by JRuby, Groovy and other languages.

So I think it is not about Java, it is always about the JVM, but Google can't tell Android is a JVM because of IP/legal issues so they created their own slightly different bytecode and made their VM to work like the Sun JVM.

So everything is about the JVM, simply google can't create a JVM and can't tell Android is a JVM, so they created their own VM for their own bytecode..

James said...

Unfortunately it can't at this point(see link), Groovy needs a full J2SE JVM to run mostly for the reflective stuff. Android is a stripped down JVM somewhere between J2ME and a full SE. Hopefully they will modify it so they can tap all the smaller JVM languages.

Anonymous said...

wow this is like another language!