Hawaiʻi's Technology Community

From the phone to the cloud, where will developers look for a unified, unencumbered platform?

What are the implications of Oracle's lawsuit on the future of robust multi-targeted virtual machines in the software universe? This is a question I've been asking myself over the past few weeks. The vast majority of software written today runs on one of a few runtime environments - the JVM (Java's runtime), the CLR (.NET's runtime), Dalvik (Android's runtime), AVM (Flash / Flex runtime) or one of the JVM-like Javascript engines in newer browsers. Popular scripting languages like Ruby, Python and the crop of new and reincarnated functional languages can be compiled / interpreted on the JVM and CLR. In today's world, languages and runtimes have become decoupled. Because only a few virtual machines have proven robust, scalable and suitable to be targeted by multiple languages, everyone is gravitating toward them. This is especially true of environments that are unified from the handset to the desktop to the server. The loss of one, either from neglect by its steward(s) or a lack of confidence in the open source and / or commercial communities is significant.

How does Oracle's lawsuit play into this? As I explained in a previous post, the suit claims, among other things, that Dalvik, Android's VM, violates multiple Oracle patents and that Google has violated licensing terms for JME (JSE and JEE are under GPLv2) that prohibit replacing the JVM. Although most of the allegations specifically target JME, its damage will be far reaching because, right or wrong, the perception is that Oracle and the Java technology stack are intertwined, and that the company that acquired Sun would take over as the steward of the platform. Further, developers want a unified platform from mobile devices to the server. If JME is taken out of the picture, it diminishes the appeal of JSE and JEE for many organizations. You can use a different technology stack on the client and server but, having done a lot of this, I can testify to the fact its never as nice as having, for example, Java (the platform, not necessarily the language) on both ends or .NET on both ends.

Creating a virtual machine that is robust, high performance, scalable, works from the phone to the server, and is suitable for targeting by multiple languages is hard. You have to worry about memory management, concurrency, just-in-time and adaptive compilation, generational garbage collection and many, many other things best handled by PhDs who specialize in that particular area. Sun and Microsoft have spent tens of millions and many man-years developing and tuning their virtual machines. This is why languages like Ruby and Python are increasingly being used on top of the JVM and CRL. Many new languages such as Groovy, Clojure and Stab are built on top of this foundation.

It seems as though the software world needs a new, unencumbered technology stack including a virtual machine and standard library that can be targeted by multiple languages and works well from the phone to the desktop to the server (obviously the mobile environment would be scaled down.) It would require non-restrictive licensing and strong backing by, ideally, multiple companies with significant resources and expertise in VMs and frameworks. Perhaps one of Google's platform efforts will blossom into this. Maybe Parrot will finally take off. Perhaps a government will fund the effort. I know the latter sounds odd, but that is how we got the internet. :-) It will be very interesting to see where this goes in the next few years.

Views: 192


You need to be a member of TechHui to add comments!

Join TechHui

Comment by Daniel Leuck on October 5, 2010 at 1:52am
@Brian Seriously though, I wish .Net could be this; I fear Microsoft lacks the ... hm.. right company culture to do this?

So do I. .NET is the leader in non-Java VMs from a pure technology perspective, but people are distrustful of Microsoft. .NET's problem is one of public perception, at least in the open source world. Many industries such as banking have enthusiastically embraced .NET on the client, and are starting to use it more in the middle tier.

@Paul With 11 years of HotSpot development and JRockIT all under Oracle's control I wonder how stifling its going to be to any third party that develops a VM

Exactly. People fear that the attack on Dalvik is just the beginning. JSE and JEE are under the GPLv2, but many of Sun's VM features and optimization techniques are not.
Comment by Paul Graydon on September 29, 2010 at 6:44am
It's everyones favourite of software patents again :)

As I understand it the Oracle / Google situation is that Oracle are claiming Google didn't just write a Java standards complete JVM in the form of Davlik, but actively used methods covered by software patents.
With 11 years of HotSpot development and JRockIT all under Oracle's control I wonder how stifling its going to be to any third party that develops a VM, tip-toeing around the edges of software patents.
Comment by Brian on September 28, 2010 at 8:24pm
Well that's hard because you've already preempted my normal lines of thought with your astute insight (Cough, language nerd!).

Seriously though, I wish .Net could be this; I fear Microsoft lacks the ... hm.. right company culture to do this?

Perhaps platforms such as android are the new VM? Early to say but it's possible. Maybe if/when we see how Chrome/Android interact it will make sense. This of course assumes they have some grand master plan rather than two product teams that will somehow jam it together ;)
Comment by Daniel Leuck on September 25, 2010 at 10:49pm
I would love to have joined you for a dive, but writing this blog was the only 30 minute break I got today aside from meals :-/ We have a lot of project work.

I hope you add the aforementioned comment.
Comment by Brian on September 25, 2010 at 8:08pm
I was going to add a relevant comment, but honestly all I can think is.. looking at the timestamp on this:

You would have had a lot more fun diving with us this morning [than writing this blog] ;)


web design, web development, localization

© 2024   Created by Daniel Leuck.   Powered by

Badges  |  Report an Issue  |  Terms of Service