A question I have found myself asking recently is: "Why not a fork?" Can someone explain to me why Apache shouldn't just rename Java to, say Jive (okay, bad example) and proceed with putting out its own certification tests?
All Jive code could at the beginning run on JVM 6, and later the Jive VM would be the place for new feature development.
Google would get behind this, I bet. Many developers could be induced to stick with the free, Non-Oracle version of the world, especially this year.
this is what google did with dalvik/android. They are being sued for that basically.
Working on openjdk gives you a patent grant, working on a fork which is not java does not, apparently.
As I understand it, that's not quite true: You write conforming Java code and compile that to JVM bytecode. That bytecode is then translated into Dalvik VM bytecode. Java (the language and the compiler) is still an integral part of the toolchain, there's just no Java-the-VM on the target device.
Google could, perhaps should, have gone for a Go -> Dalvik compiler and avoided all this.
The Oracle-Google lawsuit is about patent claims over implementation details in Dalvik and the standard library. While all your details are correct, they're not at issue.
Getting back to the OP's point -- any Java-clone will run afoul of Oracle's patents even more so than Google has with Dalvik. Even Microsoft's .NET CLR likely violates some of these patents.
Exactly. Google's run around also had to do specifically with Java Mobile restrictions -- something Sun wanted Google to pay for.
The question Oracle's lawsuit raises is whether or not it's possible to compile Java without infringing on their patents. I still think my question has more merit than wmf suggests -- MS did essentially what I'm suggesting with C#.
but the issue is not only about compiling is it?
I recall that a few of the patents (debatable as they are) specifically relate to runtime, such as the one about the security manager.
Such a patent would invalidate the whole runtime code as it was built around such a policy.
So if you want to avoid being sued you need to use a different language, a different compiler and a different runtime, which is what MS did with C#.
But then why would you need a patent-minefield such as Jive-the-forked-java in the first place?
A lot of power in the JVM comes from the JIT. To repro that, you're likely to run into patent lawsuits from Oracle even if you do discover/implement the optimizations in a clean-room.
All Jive code could at the beginning run on JVM 6, and later the Jive VM would be the place for new feature development.
Google would get behind this, I bet. Many developers could be induced to stick with the free, Non-Oracle version of the world, especially this year.
So, what am I missing?