3 ms·
Let me preference this as I'm not a Java guy, but I've been reading a bit since Oracle filed suit because of the ASF angle. From what I understand, the Apache
by davisp 16y ago
Let me preference this as I'm not a Java guy, but I've been reading a bit since Oracle filed suit because of the ASF angle.
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/ 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.
- wmf 16y agoYou're mostly right on, but IBM's proprietary J9 JVM has been TCK certified for years. Given that there are two open-source JVMs and one is clearly winning and the other is clearly losing (forever), IBM decided to switch to the winning team (even though open-source Java is kind of a "hobby" for IBM).
- hga 16y agoHobby or insurance?
- davidw 16y ago> Apache Harmony is not a VM, its an implementation of the standard library. Harmony is a full implementation, which means that there's a VM too. Google didn't use it in Android, though.
- bad_user 16y ago> Apache Harmony is not a VM, its an implementation of the standard library. 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.
- points 16y agoHow is it a dangerous platform? It's still installed everywhere, it still works, it's still useful. Nothing has really changed IMHO
- hga 16y agoWell, it's got a new steward, Oracle, that's not exactly engendering trust in certain areas such as hemorrhaging key employees and suing Google's Dalvik using VM patents (and the company does not exactly have a nice reputation). Plus as the grandparent noted, Sun's broken promise is clearly going to stay broken and I'll note that various Oracle positions have completely changed now that they own Java(TM). 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) http://en.wikipedia.org/wiki/Java_version_history)).