Conversely, by not passing TCK you don't get their patent license. Many of the patents in question are difficult (if even possible) to work around if you were to create your alternate implementation.
This means that using any non TCK implementation of Java makes you liable for patent lawsuits (as seen with the Google case).
The right conclusion to make seems to be that software patents are bad.
> Ah, so anyone using GCJ in a product could
> be sued the same way Google was sued. I
> didn't know that.
this is exactly the point. And this might also be (one of) the reason(s) why Google PR is calling the suit against them a suit against Open Source in itself.Can they do that, being the OpenJDK GPL-licensed? IIRC, it shields the OpenJDK, as well as GPL-licensed derivatives, from patent lawsuits.
It doesn't protect Apache/MIT/BSD-licensed implementations, but who cares, if there is a GPL-licensed implementation available?
Clean-room reimplementation are not though.
Harmony was created to have a non-GPL implementation (and was used by Google for that reason)
Releasing code under the GPL does not give the open source community carte blanche access to all your future patents, perhaps unless those patents are necessarily infringed by the original GPL release.
And the OpenJDK folks can always implement around those patents.
GCJ is old... and OpenJDK does have access to the TCK IIRC...
Of course it does, access to the TCK was always at Sun's discretion to give.
OpenJDK doesn't matter, Java is not free to be implemented by open-source projects (even though JSR 270 explicitly says so) because the TCK licensing prohibits it.
It is also irrelevant if GCJ is old, patents don't have a "use it or you'll lose it" clause as trademarks do.
http://www.excelsior-usa.com/jet.html
It is licensed...
Google is the one that wants to keep it's advertisement machine going. It matters to them that over the next few years an open and mobile competitor is around. It doesn't matter to me.
He also criticized the JVM.
"not resulting in as healthy an ecosystem"
No ecosystem? Clojure, Lucene/Solr, Cassandra, Groovy, Hadoop to name a few are all part of this excellent ecosystem.
Edit: There's some serious group think in HN. It seems any kind of alternate opinion gets immediately down modded. You may disagree with my opinion, but it is a valid and relevant opinion: Is all this lawsuit crap between the MegaCorps relevant to the average developer using Java for services?
And I agree that java has a large ecosystem built on top of it, making it even more important that the underlying stuff doesn't get controlled by one person.
Here's some context: http://www.apache.org/jcp/sunopenletter.html
Also, all these language implementations are symptoms of a larger problem, can you guess which?
I'm just saying all these articles about the death or lameness of the JVM are not covering the big picture.
Believe it or not, I'm using Solr, Groovy and Clojure and in my eyes the (approved || sanctioned || blessed) JVM has never a better platform.
Oracle's patent lawsuit against the Dalvik VM has cast a cloud on deep innovations in JVMs, such as GC implementations tuned for Clojure.
Is there going to be a long term problem? Who knows, who can say? All we know is that Oracle's lawyers were eager to sue Google whereas "patent suits [were] never in Sun's genetic code" (http://nighthacks.com/roller/jag/entry/the_shit_finally_hits...); what follows will depend on how that goes and who knows what else.
At the very least I'm pretty sure this is having a chilling effect. If you have various areas in which you can do things, why do deep JVM innovation. E.g. for Clojure, perhaps Clojure-in-Clojure targeting another platform, most especially x86_64? (This is not idle speculation, BTW.)
I'm just saying the sky isn't falling for the average developer that is using the JVM. We'll all be using XYZ technology, which hasn't been invented yet, in 3-5 years anyway.
Google is the one with the short term vested interest in distributing a VM that runs Java.
The Android _SDK_ is Java based. The Android apps are written in Java, the language, compiled into Java bytecode (Java class files) and the class files are converted into single dex file, which is custom instruction set. Then the app is moved onto the device and run.
The Android runtime is neither Java, nor JVM. It is custom (proprietary) VM that happens to use library that is API compatible with Java's standard library (Apache Harmony compiled and converted to dex; again, no java bytecode in sight).