I'm on the plane to JavaOne, thinking about what we'll hear over the next week. So far, there's been no response from Sun to Apache's open letter (except the weird blog from "jacki", whoever she is...). But there are plenty of rumors about the a JCK announcement by Sun on Tuesday, probably at the keynote. I'm really bad at prediction, so I hate writing something like this, but I'm in the back of a 767 (no, not EOS) and really bored, so here goes.
It's a strange thing, to mention the JCK in a keynote. It's software that 99.999% of all Java developers really don't care about. They just care about having compatible, performant Java. In the Harmony project, that's what we're trying to do, but the license terms under which Sun is offering the JCK are simply unacceptable.
The rumor is that Sun will offer the JCK as open source software. While that would be great, I suspect it won't actually address the problem - I don't believe it means what people are interpreting it to mean :
Current JCKs are available under an open source license, such that using the software as-is tests compatibility, and if passed, bestows all necessary IP as mandated by the JSPA.
Why don't I believe this? Because I can't believe that Sun would have forced the ASF into the open letter with all the negative consequences when they intended to not only comply with the terms of the JSPA as the ASF is requesting, and then go a step further and put the software under an open source license, which would be nice, but not actually a request from the ASF. Why would they do this now? If they had planned this, why wouldn't they have given the ASF a license without the FOU that violates the JSPA - just like every other TCK license the ASF has received from Sun - and then followed up with the open source announcement at JavaOne? They'd be heros to the FLOSS crowd. They'd be heros to me! Now, they find themselves in a public battle with a charity.
So, while the above would be great, I'm guessing it isn't going to happen. I could be totally wrong - it's happened before, more times than I care to admit. But suppose I'm right - what might happen? Here are a few guesses :
"It's not whether but when!" - In the same spirit of their "open source Java" announcement, they will announce that the JCK will be open source, in some future version, which may or may not be defined at the time of announcement. I'm guessing Java SE 7 is safe for them - that will be 2009 if history is any guide - which will be time enough for the organization to purge itself of the paranoid elements driving the current rift with the ASF, or if not, to prove the rational POV to be correct - that Harmony isn't any more a risk to Sun's business than OpenJDK is, and that more compatible, open source Java makes the Java ecosystem stronger, which makes Sun's value proposition to their customers even stronger. If I were Jonathan Schwartz, I'd be mighty worried about MSFT distributing a free, open source, cross platform .NET VM. But then again, that's the long view, and Sun seems to be rather quarter-to-quarter focused these days.
"The 'Look Ma! No IP!'" - This one is to release the source to the JCK under an open source license but not have it be the official JCK, in the same way that lots of Apache technologies like Tomcat and the XML stuff were the code that went into the RI of Sun's specs, but wasn't officially the RI. This will satisfy the FLOSS crowd, as they don't care about being compatible, and are living under the delusion that they have all necessary IP for an implementation. This will also confuse people quite a bit, as they won't realize that it doesn't solve the problem. Why doesn't it solve the problem? Because in this model, the JCK isn't actually open source - just some test suite that's part of the JCK. By definition, free software and open source software don't have field of use restrictions.
"The Flying Stallman" - This option is a bit weirder and also interesting. Imagine if Sun put the source of the JCK tests under the GPL, and then additionally had the JCK license allow FOU-less use on GPL-ed codebases. Note that this JCK license would violate the JSPA in the same way that the current JCK license does, as it doesn't remove the problematic element. It's also interesting as I'd hazard a guess that the FLOSS crowd would stand and salute even thought it's an ironic and clever example of a commercial entity leveraging the restrictions (aka "Freedoms"(TM)) of the GPL for commercial control or advantage. It's a tried and true business model (MySQL, OpenJPA, JBoss, OpenOffice) that works just fine, btw. Would they try something as nutty as this? Well, given Sun's confusion over their current compliance with the JSPA, who knows... it seems that the sky's the limit. Would it work? (With "work" defined as "placate the FLOSS crowd while calming Sun's misguided fears about Harmony") Maybe. I think it depends on the wording. Suppose someone had a project where one entity holds all copyright (like Sun does with OpenJPA). That entity could dual license under both the GPL and something else, but I suppose Sun could argue that their IP doesn't flow to the software under the other license (in violation of the JSPA).
I'll guess it's the first one. It is years away and therefore doesn't need to be sold internally very much....
I'm not sure if I can think of any other possibilities, except one - Sun figures out that moving forward with the ASF is more valuable over the long term than pointlessly trying to protect "make or break the quarter" revenue by taking a legal position that puts the legitimacy of the JCP in doubt. Lets call it a big miscommunication, shall we? Jonathan, I'd love to shake your hand on stage Tuesday (or offstage, or not shake hands, or.... Just send us an email if that's easier...) and move forward in the positive and productive manner that has characterized the relationship between Sun and the ASF for years now. Lets fix this.