This would help them in many many ways. Firstly it would demonstrate to the courts that Dalvik is not specifically a Java VM. This clears them of several legal challenges (still leaving some).
Secondly and more importantly, it would up the stakes with Oracle tremendously. Having Google actually abandon Java on Android due to legal concerns would be a huge blow to Java. Especially if Google did so in a way that enabled existing Java applications to be ported easily (by adopting the Apache Harmony libraries, utilizing their existing dexer to enable people to run their existing Java code while picking up Google's replacement language for new code). They'd have to work around any patent violations in the VM which might have some performance impact but I'd still assume it is possible.
It would basically change the game to a lose-lose proposition for Oracle - win the court case, get some money, but lose Java. Lose the court case, effectively still lose control of Java.
Swapping the language out is probably the smaller part of the problem. The dependency that every application has on the Java-based runtime libraries are the bigger problem.
> Heck, I'd probably just be grabbing something like Go and throwing 10 pHDs at it.
Go already has a working ARM code generator, so you could potentially skip the Dalvik step completely and ship native code. I think you'd still need to put some effort into building a set of Android libraries for Go though.
Further, Google as a company seems to have drunk the Java Kool-Aid (e.g., Closure compiler is written in Java, GWT uses Java as source language, and I hear Java is one of the three "blessed" languages (others being C++ and Python)). Personally, I think C++ would have been a better choice for the first project, and Python for the second one.
It's highly unlikely they're going to stop using Java on Android.
This is already pretty clear; you can run Lua, Scala, Javascript, Scheme, Ruby, and many other languages on Dalvik.
A "JVM" is not a Java language interpreter anyway but a Java byte code interpreter. AFAIK all those other languages only run on Dalvik by first being compiled to Java byte code format, thus it is arguable that they are all "Java" as far as the VM goes.
What Google needs is something that compiles directly to Dalvik's own native format which has no "Java" at all in the pipeline.
You seem to think the JVM bytecode format is specific to the Java Programming Language™; why is this?
Admittedly Sun has muddled things up here by using the word "Java" to mean many separate things.
1) impolite. 2) your comments should concentrate on what you can add to the convo, not what others haven't.
I mean, it also doesn't help that your statement was incorrect (P-system as mentioned), but being rude in what is ideally a civil forum dedicated to a stated purpose is not helpful.
Reading comprehension, bro. Give it a try.
The Dalvik VM, like the Java Virtual Machine, is quite capable of running languages that aren't Java. There's nothing controversial or incorrect about that statement.
From what I understand, the Apache Harmony project was doing a clean room implementation of the Java standard library. There was a clause somewhere (I haven't researched the exact text of this) that said something along the lines of "You must pass the TCK (Java's language test suite sort of like rubyspec http://rubyspec.org/) to be a 'compatible implmentation'," or some such.
Apache Harmony people started writing code and when it got time to say, "Ok, can we have the TCK to validate this?" Sun said, "Yes, as long as you promise no one will run your shit on mobile phones."
If you know the ASF, this sort of thing is wildly against their core mission: to make unencumbered software. So they gave Sun-Now-Oracle the finger.
Now, we need to cover a few bases here. Apache Harmony is not a VM, its an implementation of the standard library. The patent issues Oracle sued over were related to the Dalvik VM. The important point here is that the Dalvik VM is not Java. Its an interpreter for byte code. The byte code that runs on Dalvik will not run on any other VM. People think that Android Java is Java, but its not. Android Java is Java that's been compiled to JVM bytecode and then been translated to Dalvik bytecode (again, IIUC).
The basic point is that 'The Java Language' is not a JVM. It is not a standard library. But there's some weird ass 'Certified Java' thing that can't be obtained unless you give up rights, even though Java is open source.
My reading of this IBM/Oracle tryst is that IBM decided that it could get a "TCK certified" Java implementation by backing OpenJava.
Which is a long way of saying, no, Google/Apache probably can't just create a new Java spec. The JCP et al will prevent such things. Perhaps they could fork and make a RangerRick language that was source level compatible, but something tells me these people employ too many lawyers for that to go over well.
It's both, and Harmony is an implementation of Java SE.
Also note the following quote from JSR 270:
"""Nothing in the licensing terms will prevent open source projects from creating and distributing their own compatible open source implementations of Java SE 6, using standard open source licenses."""
That's a broken promise, although I don't think it is legally binding because the term "open source license" they could argue it is something that comes with code (since the trademark for "open source" could not be obtained by OSI).
But for me as a Java user, a broken promise is a broken promise.
I never viewed Java as being a dangerous platform, not even when OpenJDK didn't exist. That changed.
On the other hand, one might say that shedding some of these employees is OK or better and finally getting decisive on moving forward on Java 7 is good ... and the two might not be entirely unrelated.
I don't know the inside story and who's to blame, but it's patently obvious that Sun's stewardship of Java was serious failing at the time of the acquisition and for some time before then. Java 7 wasn't converging on getting finished in the foreseeable future and as I understand it the JCP process wasn't being used for it. Note that in a couple of months it will have 4 years since the release of Java SE 6 (prior to 7 the releases 3 through 6 each took 2 years (http://en.wikipedia.org/wiki/Java_version_history)).
Harmony is a full implementation, which means that there's a VM too. Google didn't use it in Android, though.
Having said that, Google are heavily reliant on the Java platform, so they must have at least considered how they can protect the platform if necessary. Could they fork OpenJDK? Or at least support a fork? They certainly have the resources to do it, and Oracle's early moves don't bode well for a cooperative solution, so I wouldn't be surprised. Perhaps they will use the current litigation as a test re: the possible patent issues, although by the time that is resolved it may be too late to make a move...
If they'll release specs for Dalvik, make it a standard somehow, I'm pretty sure Apache will help.