ANALYSIS

Today’s Java is a very different beast than it was just five years ago. First and foremost, Java today is owned by Oracle, not Sun Microsystems, which Oracle purchased. Java is also an open-source project under the GPL, yet perhaps ironically, the open-source-loving Apache Software Foundation has pulled away from the project itself and resigned from the Java Community Process.

Java is still popular around the globe, but it is now also used to run other languages, such as Ruby and Scala. And the JCP itself is now pushing standards through faster than it ever has, yet it has mostly been reduced to a rubber-stamping organization.

Yes, Java has changed. The Apache Software Foundation, long infuriated over the licensing rights associated with the Java Test Compatibility Kit, has turned its back on the JCP. But this was about more than just the TCK, said Mike Milinkovich, executive director of the Eclipse Foundation.

“I want to make it clear that I don’t fault the Apache Software Foundation for anything they’re doing or the position they’re taking. It’s obviously been incredibly frustrating for them to go though the changes that have happened over the last few years, and to start up the Harmony project and not get the support must be frustrating,” he said.

Apache Harmony, an open-source implementation of Java SE, is at the center of the ongoing lawsuits between Google and Oracle. Google uses Harmony libraries in its Android platform, and Oracle has alleged patent infringement on the part of Google for this very reason. This scenario is exactly what Apache was trying to avoid by not passing Harmony through a TCK. The licensing terms of the TCK restrict the use cases that a compatible Java can be used within, and the Apache folks on the JCP felt that these restrictions would leave Harmony users open to litigation.

But it would seem that the TCK didn’t even need to enter the picture for litigation to take place. Milinkovich is also certain that, no matter what Apache does, it will not be changing the licensing terms on the TCK.

“There is just no chance Oracle is going to change their position,” he said. “I’m not sure people actually understand that. I think there are some people that think if they can get enough community support that they’ll change Oracle’s position.”

Moving the JCP forward
That being said, Oracle is attempting to evolve the JCP. Ironically, Oracle was the company that first made a stink about the TCK licensing terms back in 2006. Today, however, this would seem to be the last on their list of “to fix” items.

The results of this rift between the OpenJDK project and Apache bore bitter fruit during the first week of Java SE 7’s release. The Apache Lucene and Solr projects both discovered, five days before Java SE 7 shipped, that their projects could corrupt data if used on top of Java SE 7. The bug resulted from a compiler flag for optimizations being turned on by default in SE 7, and this caused some programming loops in Lucene and Solr to go off the rails. According to other reports, LibreOffice does not run properly on top of Java SE 7 either.

Is the rift between Apache and Oracle lowering the amount of collaboration between the two entities, thus enabling bugs like these to make it through the development process without anyone knowing they exist?

Stephen O’Grady, principal analyst at RedMonk, said that Oracle’s reputation in open source preceded it in the OpenJDK project. “I think Oracle is not popular in open-source circles for a wide variety of reasons. I think with respect to Java, the litigation around Google does give some people pause, but as far as the development of the languages goes, so far they have been a reasonable steward for Java.”

Instead, Oracle has cuddled up to Apple and IBM, and has essentially turned the JCP into a rubber-stamp organization for Java SE 7, but that does not mean it will remain so. John Rymer, principal analyst at Forrester Research, said he’s been anticipating JCP changes, but has thus far been disappointed.

“I keep waiting for them to reorganize it. I think they’re just doing things quietly behind the scenes,” he said. “The JCP was too broad and moved too slowly. Oracle looked at it and said, ‘We’re not going to go through a community process here, we can agree on a lot of things that need to be done here, and the JCP becomes a rubber stamp.’ Once the obvious things are done, processes like the JCP can be helpful in driving consensus.”

Thus, the JCP pushed through the proposed changes to Java SE 7 only after those changes were laid out and ready for prime time. Instead of a lengthy discussion and a process of committee-driven approval and design, Java SE 7 was the OpenJDK first, and then was pushed through the JCP as a last step.

All of this raises the question: How is the OpenJDK governed? At the moment, the answer is that the Oracle team is mostly in charge. The reorganization of the OpenJDK governance committee has been on the back burner almost since its inception. Mark Reinhold, chief architect for the Java platform at Oracle, said that the OpenJDK governance committee would become more transparent, but it would seem that the release of Java SE 7 has been the primary focus thus far.

Indeed, Reinhold said as much when he announced the forthcoming release of Java SE 7: “The most significant thing about this release is the fact that we’re finally shipping it,” he said. “It’s been almost five years now since the last major release. We all know that, for various business and political reasons, this release has taken some time.

“After the transition out of Sun and into Oracle, we brought new focus and energy. This is not a revolutionary release the way some of our releases in the past have been. This is more of an evolutionary release. We have significant improvements but no groundbreaking kind of features.”