This post originated from an RSS feed registered with Java Buzz
by Weiqi Gao.
Original Post: The JVM Is Not The Center Of The Universe!
Feed Title: Weiqi Gao's Weblog
Feed URL: http://www.weiqigao.com/blog/rss.xml
Feed Description: Sharing My Experience...
If you follow the Java blogs and tweets in the last couple of years, you've heard the argument that the Java vitual machine is where the value of the Java platform is, and Java the language is mrely one language among many languages that allows programmers to write frameworks, libraries, and applications for the JVM.
And according to the stories, the race, of the alternative JVM languages—including Groovy, Scala, JRuby, Jython, Clojure, and others—to become the Java.next is on, and Scala is winning it, if the Java Posse is to be believed.
It is therefore not surprising that in the latest episode of the podcast, JavaPosse #262: The Week Of Controversies, Dick Wall raised the point that Google is leveraging Java in a different way:
Dick Wall [7:39—8:59]: Google has invested a lot of effort into doing Java language centric work. So Android compiles Java to Dalvik executable format. GWT takes Java and compiles it to JavaScript where it runs in various browser environments. And Google App Engine takes Java source code and runs it on a targeted subset of Java SE, minus some features like threads, background processing, and some of the core classes.
So it seems like Google is centered on the Java language. Now this is my point: Of all the Java landscape right now, the Java language is the least interesting to me, important for sure. But honestly why are they centered on Java the language and not Java the platform or more importantly Java the community. That just seems like a crazy thing to be concentrated on.
Java at this point feels like a language which is going into maintenance mode. Why this Java obsession? I think they are missing the much much more important parts of the overall Java landscape, which is the Java platform and the Java community.
And I can't get why they are so focused on the language. It's like they don't seems to get the other parts of Java right now, the more important parts of Java.
While I agree with Dick that the Java platform (by which I assume he means the JVM plus the APIs) is a compelling one to develop and deploy applications, I don't share his puzzlement about the way Google uses Java the language to target platforms other than the Java platform (Dalvik, DOM, GAE, etc.).
One reason Dick gave for paying less attention to Java the language is that large scale innovation seems to have stopped for Java the language. However, that could be a very good reason for teams like those inside Google to adopt the language. After looking at all the alternative languages I mentioned above, my sense is that Java is still the undisputed easy-to-grok, easy-to-write, easy-to-read, and easy-to-maintain language among them all. Given the resources Google has, it is natural for them to experiment with targeting Java the language on different platforms. The era of the thou shall not separate the language, the virtual machine and the API has long gone. And the irony is that that policy has severely limited the reach of Java, as I blogged 810 days ago.
I believe the general Java scene is too much intoxicated in the belief that The JVM's the One True Virtual Machine!. It may seem that way from some perspective. However the history of computing teaches us that there is no One True Thing™. Eventually, some of the less mature VMs will catch up with the JVM. And two or three, or even four, of them will dominate the computing scene for some time. By then, the single VM languages will look silly. Groovy and Scala are particularly in danger. Python, with its Jython, IronPython, and python-parrot implementations will win the day.
I see Java the language jumping out of the JVM sea and reaching the land of the lesser known but equally promising runtime environment as a crucial step for the survival of Java.