OpenJCK

Dalibor is always much more eloquent than I am. He made the core observation that explains my (and I know from discussions on irc a lot of other people) double feeling about the “open letter” that Geir send to Sun in a recent thread on the GNU Classpath mailinglist. In principle I am for an open dialog about these issues and being one of the original harmony founders I naturally care about these things, building bridges and compatibility were the main drivers for my involvement. But I am no longer involved with harmony and as Dalibor points out the time line of events is important as well:

We started the negotiation [with Sun for the 1.5 JCK] after the Boston runtime summit [end of 2004], after the release of Java 1.5, and spent some time clarifying the terms I was unfamiliar with. Eventually, the ASF wanted to get in on the game, so, since the ASF had experience with getting and managing TCKs, I switched gears and rather than certifying Kaffe/Classpath worked on turning Harmony into the unifying project for different VMs, making ASF embrace GNU Classpath, and all that idealistic & fun stuff that you’re read me talking about back in the day.

You really should read his whole email which explains a lot of our thinking around issues of compatibility, test suites, certification and working in an open, transparent and distributed environment.

Back when we started Harmony! one of the main reasons was to build a bridge towards the JCP & Sun confirming our compatibility story and to show that we were serious about libre Java. We truly believed Apache could help us with that. It sadly didn’t work out that way even though we worked for months to build up a great community, in the end we had to decide that some companies just had other plans then to work together on this.

And we have moved forward. The “open letter” makes it look like we are back at were we where 2 years ago. But things have changed. We are eagerly looking towards OpenJDK/Java7 being completely available under a Free Software license. That will change the TCK game since with OpenJDK Sun will have to play the same game as all of us, in the open, transparent and following the rules of the Free Software community. There are also a lot of discussions going on around how the JCP and the TCK process should evolve (see for example JSR 306: Towards a new version of the JCP). At Fosdem we had a lot of people from all the different projects, including OpenJDK, GNU Classpath, Kaffe, GCJ, Cacao, JamVM, IKVM, Fedora, Gentoo, Debian, etc. together and discussed these things. The JCK stands for many things, a test suite (and David Herron gave a nice overview of the quality team at Sun and how they deal with testing – read his blog for more), compatibility claims, certification processes, trademarks, branding rights & obligations, etc. Not all of these make sense for a true Free Software project of individuals and organisations working together on a commons.

An extra test suite and a way to claim compatibility based on that are always welcome. But certification processes normally evolve around specific binaries for specific architectures and platforms, something which makes much less sense (and is much more time and labor consuming) for projects that deal with just Free Software source code (not to mention how to pick which specific distro/architecture to do it for, while we have the freedom and choice between so many). And trademarks and branding rights & obligations are again a different issue (which I believe nobody has really fully solved yet with regard to Free Software). I was happy that Onno Kluyt from the JCP and Rich Sands from Sun were there and that we could go over the Mozilla Firefox/Iceweasel issue (sharing a beer to keep the conversation pleasant) and think about how to prevent something like that happening to Java ™. I was happy to learn that they already have some kind of “honor system” setup, but that is dealt with through specific contracts with specific companies, a solution that wouldn’t work in general for the GNU/Linux distributions. We certainly didn’t solve all these issues, and it is clear that all of these will be challenging and hard to solve right. But the conversations were open and honest.

Geir was also present for harmony but opted to not submit a talk proposal nor to discuss any of his plans in the group or privately over a beer with me when I offered to help with getting access to a TCK. But trying to negotiate a special deal for a select private group behind a NDA just doesn’t make sense for a open, distributed, collaborative group effort, especially not if you want to build bridges towards other communities and share efforts. Been there, done that, didn’t like the t-shirt.

I don’t really agree with David, I don’t think Apache Harmony is dead, Free Software never dies (that is the whole nature of Free Software and why we actually care so deeply about libre Java in the first place). And I also don’t think they have to regret that open letter since it will be a learning experience for the people involved and the core idea is good, there should be a more transparent way to have the community involved with the core platform TCKs. And to be honest this kind of games around JavaOne seem kind of tradition (anyone remember my favorite from 1999 – MS Kaffe), so calling it extortion, as some have done, is also a bit over the top.

This will actually be the first JavaOne I attend and I am really looking forward toward both the technical discussions and the community oriented tracks (I will be on the Java Technology Libre Panel). Lets make this the year that we as Free Software community and Java community as a whole finally come together in earnest, have real discussions about these hard topics. And most important of all share the code and move Java and the Free Software community forward. Happy Hacking!