Hacker News new | ask | show | jobs
by wtallis 5695 days ago
What good is Java if there's no longer a spec to help ensure cross-platform compatibility?

Also, there are major trademark, patent, and copyright issues that need to be settled before anybody can safely fork Java and stop adhering to the spec.

2 comments

"Mostly compatible" (at the source code level) would be good enough for quite a few applications. For example, take a look at a lot of the C and C++ applications out there, which use OS APIs that often vary widely. Despite that, C and C++ applications are still written, and very popular.
The problem (as I understand it) is that without passing the TCK (which Apache can't get without field-of-use restrictions), you don't get the patent license required to safely run Java in a business environment. I don't think the line-of-business app developers that have driven the bulk of Java usage over the years can afford to risk getting sued by Oracle, so they can't really depend on a non-licensed runtime.
I thought that went the other way: you need a patent license to author and/or run the TCK. You can create a Java compatible VM (many have) but you can't run the "official" compatibility test without Sun's, now Oracle's permission, and there is some concern (at least at Apache) that you cannot easily create a "cleanroom" implementation of that TCK. (Although I think that latter concern is more social than legal--if I remember correctly conventional wisdom said that there were too may Sun folks already involved with Java projects at Apache to have any reasonable expectation that a cleanroom would remain clean.)
Both C and C++ are ISO standards. Oracle doesn't own them and can't buy them.
> Also, there are major trademark, patent, and copyright issues that need to be settled before anybody can safely fork Java and stop adhering to the spec.

One would certainly have trademark issues with the name Java, but I'm not certain about the rest of that statement.

Sun/Oracle have already provided a GPL'ed version of the JDK and core libraries at http://openjdk.java.net/. There are/were independent attempts to do this also, see http://en.wikipedia.org/wiki/Java_Virtual_Machine#Licensing and http://en.wikipedia.org/wiki/List_of_Java_virtual_machines for example.

I think the only real issue is around the TCK, but that's just blessing an implementation as "Java Compatible(tm)", or at least I think so. Couldn't one take one of the existing JDK/JRE implementations, rebrand it IcedTea, and create their own IcedTea compatibility test?