> Of course it can! These are unlicensed implementations of core features
No because out-of-JVM Java libs needn't provide those features since they are available through OpenJDK. The patents Oracle uses are only useful against someone that needs to reimplement core features because he has not access to a blessed JVM. They are useless against out-of-JVM Java libs that provide different features.
>> Also, because the purpose of a JVM is to run Java code, they can not
>> attack people for doing so
> Newsflash: this exactly what they are doing right now.
Nope, they are attacking Google for creating something that runs Java code, but is not a JVM by their definition. This is not a problem for OpenJDK.
> 1. That's good way to create slow "enterprise" monster
Don't be silly, remember how old Java is? Today's smartphones are faster than the computers used when Java was created. Whatever inefficiencies exist in OpenJDK will be made increasingly irrelevant as hardware gets faster.
> 2. It only works for IBM because Oracle will not dare to sue them about
> SWT.
Nope, it works because SWT is an *addon* and Oracle can only use SUN-inherited tricks to sue on core features. Google messed with core features, which is the only bit SUN had some hold on.
> TCK only applies to implementation which pass tests. Tests may include
> different restrictions
New restrictions can not apply to past approvals. They can try to play this kind of trick, as long as OpenJDK behaviour does not change significantly I doubt a judge will be impressed (yes your honour, you see, when OpenJDK passed the TCK this function returned 6 in 10s, now it returns 6 in 5s, obviously OpenJDK needs to pass TCK again, and BTW the new TCK conditions say the old OpenJDK could not have passed it either).
As long as OpenJDK does not pretend to a Java level it has not passed the TCK for before, and has not changed the behaviour that made it pass the TCK previously, it's clean. (and that's only about the Java name, it Oracle tried patent tricks they'd have to handle the GPLv2 implied patent grant before a judge, which is a lot less easier than threatening to do it someday before the press).
Posted Aug 14, 2010 15:26 UTC (Sat) by khim (guest, #9252)
[Link]
The patents Oracle uses are only useful against someone that needs to reimplement core features because he has not access to a blessed JVM. They are useless against out-of-JVM Java libs that provide different features.
Ah, I misunderstood you - I though we were talking about reimplementation of core features... If we are talking about some features not implemented in Java core then it's even easier: Sun never promised to license patents for these so if you step on Oracle's toes it's even easier to sue you. If you develop something totally unrelated to bazillion of Oracle-developed Java products then yes, you are free. The same as with C#, really.
Nope, they are attacking Google for creating something that runs Java code, but is not a JVM by their definition. This is not a problem for OpenJDK.
They are attacking "unblessed" implementation. I doubt if you'll bundle your implementation with OpenJDK it'll satisfy them. The only way to implement Java from now on is to use unmodified (or slightly modified) OpenJDK.
Don't be silly, remember how old Java is? Today's smartphones are faster than the computers used when Java was created. Whatever inefficiencies exist in OpenJDK will be made increasingly irrelevant as hardware gets faster.
There are one problem with this idea: hardware stopped "getting faster". CPUs reached 3GHz eight years ago. Today they still can not pass 4GHz barrier. The speedups now are related to increased number of cores - and as number of cores grows NUMA-related problems become more and more relevant. To solve this kind of problems you need deep redesign of system code and VM. Exactly things Oracle now forbids.
Nope, it works because SWT is an *addon* and Oracle can only use SUN-inherited tricks to sue on core features. Google messed with core features, which is the only bit SUN had some hold on.
It may be an addon, but it duplicates functionality of SWING and so probably infringes some SWING-related patents. Oracle does not dare to sue IBM but will sue any small company if it'll try to duplicate the trick.
New restrictions can not apply to past approvals.
And this means (again) that we are in zombie-state: existing implementation can be used, future development is forbidden.
As long as OpenJDK does not pretend to a Java level it has not passed the TCK for before, and has not changed the behaviour that made it pass the TCK previously, it's clean.
No, it's not. I gave the link before. You must "pass all test suites relating to the most recent published version of the specification", not some arbitrary version in the past.
and that's only about the Java name, it Oracle tried patent tricks they'd have to handle the GPLv2 implied patent grant before a judge, which is a lot less easier than threatening to do it someday before the press
And this is about zombie-state again. Yes, existing implementation is clean and as long as you don't muck with it too much you can use it. But Java development is stopped. Frozen. Halted. Java is zombie - not yet dead, but no longer alive.
And this is in the time where "multi-core revolution" means all platforms must evolve to stay relevant in a few years.
Oops...
Posted Aug 14, 2010 17:46 UTC (Sat) by nim-nim (subscriber, #34454)
[Link]
> And this is about zombie-state again. Yes, existing implementation is
> clean and as long as you don't muck with it too much you can use it. But
> Java development is stopped. Frozen. Halted. Java is zombie - not yet
> dead, but no longer alive.
You continue spreading confusion by mixing different things under the "Java" name. What people call "Java" is actually three things
1. A JVM. This is the part which has been patented by SUN, and rewritten by Google. OpenJDK is safe here due to A. Sun patent pledges B. GPL implied patent licence. Google, not, because it has neither (as long as a court thinks software patents, or those software patents in particular are valid)
2. Classpath libraries. The bits of Harmony Google use are here. With 1. this is the perimeter the TCK checks. Again OpenJDK is safe here since it already passed the TCK and only needs to be careful to not change its functional behaviour. Yes you need to use the latest TCK when you pass it but no Oracle can not change the TCK and argue before a judge it invalidates its previous approval. New TCK versions are only relevant if OpenJDK wants to claim a new compliance level. And the TCK only controls the Java name, without the TCK one just has to rename its implementation, as long as the patents protecting 1. are either invalidated or procured through the GPLv2 like is the case for OpenJDK
3. Third party infrastructure libraries. Used not to be realistic because of the abysmal manual classpath system SUN set up. Hence SUN's lock on Java, you had to push your lib in the Classpath libraries to have it widely distributed and used. Lock no longer operative now others built real dynamic dep systems (OSGi, maven...)
People build Java apps over 1. 2. and 3. With OpenJDK/GNU Classpath SUn has relinquished its hold on 1. and 2. and there is no possibility of coming back. The worst Oracle can to is hamper the evolution of 1. and 2. in OpenJDK, which will just push new features in 3. And 1. + 2. + 3. is not a zombie but an operational evolving platform
Where is confusion?
Posted Aug 14, 2010 18:37 UTC (Sat) by khim (guest, #9252)
[Link]
You continue spreading confusion by mixing different things under the "Java" name. What people call "Java" is actually three things.
Perhaps even more, but what this has to do with anything?
1. A JVM. This is the part which has been patented by SUN, and rewritten by Google.
Yup. This part of "off the limits" now.
2. Classpath libraries.
Frozen too.
3. Third party infrastructure libraries... Lock no longer operative now others built real dynamic dep systems (OSGi, maven...)
Yup. You can play in this space as long as you either big enough to ward inevitable Oracle attacks or if you like to live on the minefield. Oracle already showed that it will try to kill any development which threaten it's proprietary Java offers so you can safely add anything to "3" if and only if these additions have no significant value. Why bother with these additions then?
The "rotten core" model. When the traditional "open core" company stifles community the said community can at least fork the project - but here this ability is removed from the start. You can not change core no matter what. You will be sued if you want to move something from proprietary periphery to core. Even if you reimplement it from scratch. In short: the place to be only if you are masochist and like pain and like to see your "babies" killed repeatedly. Do you really think population of masochists is big enough to keep Java alive?
If the "open core" is bad (and often leads to zombie projects where community refuses to participate) "rotten core" model is infinitely worse (and almost guarantee "zombie" status in the near future). In a sense we've back in 2005 with one small difference: where Java was "all the rage" back then it's "tired old technology" now. Where back then people hoped for the future where Java will be truly open today all the hope is lost. In short: Java joined COBOL. I don't think this is what Oracle had in mind, but this is what it done.
This approach was tried many times in the past - and failed many times too. Sometimes community was able to boot "rotten core" from the project and replace it with truly "open core" (GNU/Linux replaced GNU/Solaris and now Google tries to replace JVM with Dalvik in similar fashion), sometimes community was killed instead (for example Darwin and now OpenSolaris), but this situation rarely continue for very long...
The worst Oracle can to is hamper the evolution of 1. and 2. in OpenJDK, which will just push new features in 3. And 1. + 2. + 3. is not a zombie but an operational evolving platform.
No. Oracle already effectively frozen third-party development in "1" and "2" (more effectively then Sun was able to do with OpenOffice.org - I doubt we'll see analogue of Go-OO after this fiasco) and since development of "3" will be under constant threat from Oracle too... there are only two choices: Google wins fight for Android and OpenJDK is replaced with something else (don't necessary Dalvik - it can be completely different implementation like GCJ or something similar) or Google loses and Java becomes true zombie which disintegrates in time.
Oops...
Posted Aug 16, 2010 14:53 UTC (Mon) by nye (guest, #51576)
[Link]
>1. A JVM. This is the part which has been patented by SUN, and rewritten by Google.
Practically speaking, it's highly unlikely that any VM, regardless of the targetted language[0], doesn't infringe some of Oracle's patents. Since - unlike Sun - they've shown that they intend to use them, this means that nobody implementing a VM-based language is safe; we just need to hope that Oracle will only bother with deep-pocketted targets. Google obviously made themselves a big target by touting their Java-to-Dalvik compiler.
[0] Unless it's a compliant JVM *and is certified compliant by Oracle's arbitrary choice of test*.
Oops...
Posted Aug 16, 2010 16:03 UTC (Mon) by paulj (subscriber, #341)
[Link]
There's another way, besides your 0: Base your VM (it need not be Java compatible) on the GPLv2'd OpenJDK and ensure any code embodying Oracles' patents stays within scope of the GPLv2 patent grant.