3 ms·
OpenJDK is GPLd, so anyone can fork it or continue development on their own, although they might lose the right to use the trademarked word Java to describe it.
by danarmak 9y ago
OpenJDK is GPLd, so anyone can fork it or continue development on their own, although they might lose the right to use the trademarked word Java to describe it. But they might not be able to support future Oracle Java versions and features, because Oracle wouldn't release the source for those under a liberal license and would probably sue any clean-room reimplementers under the "copyrighted API" legal theory that they got upheld against Google.
The runtime behavior (GC, JIT, etc) would also diverge, since the optimizations, memory layout, etc. are not covered by a spec you can try to implement exactly. Today complex programs often take JVM implementation and optimization details into account (and sometimes can or have to be optimized for particular JVM versions, since e.g. the available GC algorithms have changed several times).
Finally, some of those OpenJDK folk are Oracle employees, and they would leave. Even if IBM and RedHat and everyone else united against Oracle, which is uncertain at best (see: IBM's history with Apache Harmony), it would take a lot of new money & effort being poured in just to match Oracle Java development every version.
And even if the new free fork was as good as Oracle Java, but not significantly better (technology and/or support wise), the market probably wouldn't shift. Today very many companies run Oracle Java and not OpenJDK Java on their production servers, even though they don't have Oracle support contracts, because there's a perception that Oracle Java is better or more stable.
There are various other problems I can imagine. Maybe Oracle isn't obligated to keep providing the TCK for new Java versions to OpenJDK and its descendants. Sun licensed it to OpenJDK, but maybe Oracle could find a way around that, or just stop publishing the TCK at all and make sure it was in practice really hard to be 100% compatible with future Java.