IBM and Oracle announced last month that the two companies would begin working together on the OpenJDK, unofficially designating that effort as the future of Java and clearing up much uncertainty about the direction Oracle would take the platform. The fate of the Java Community Process, which oversees the advancement of Java specifications, is not as clear.
Bob Sutor, vice president of open systems and Linux for IBM Software Group, wrote in his blog an announcement of collaboration between IBM and Oracle, in which he characterized it as a “reverse-fork.”
“You less often hear about what I’ll call a ‘reverse fork’: people developing largely similar but separate projects who decide that they instead want to work together. They can do this for a variety of reasons, but it all comes down to burying the hatchet or otherwise resolving their differences for the sake of the project,” he wrote.
He stated that major changes would soon be coming to the Java Community Process, specifically by implementing more transparency. He alluded to the fact that the changes coming to the JCP had been asked for by Oracle some years ago. He also said that IBM has been lobbying for these reforms.
The announcement was unexpected, because up to that point, IBM had been using and contributing to the Apache Harmony project, an open-source implementation of Java SE 5. Rod Smith, vice president of emerging technologies at IBM, said that this decision in no way indicates that IBM is ripping out Harmony libraries and replacing them with their OpenJDK equivalents.
“It’s a forward-looking process,” he said. “It’s not a rip-and-replace, it’s an evolution. I think the [Java Community Process] has got to change, too. I think that’s part of Oracle’s recognition, here. It’s been a logjam for some time.”
While this is a good thing for the OpenJDK and for the JCP, the Apache Harmony project is now the version of Java in trouble. Other news outlets have reported that Apache will now abandon Harmony. But Harmony creator Geir Magnusson Jr. said that this is false, and that work on the non-certified Java SE implementation will indeed continue.
“Apache has no plans to scrap Harmony,” he said. “IBM wanted to support OpenJDK, and that’s fine. At the Apache Foundation, the people are participating as individuals, so IBM is not a member of Harmony. My assumption is those employees that worked on Harmony before will now work on OpenJDK.
“And certainly that’s a big loss. It’s not a good thing for Harmony at all. But keep it in perspective: For the Apache Foundation, it’s up to the community what will be done. We do what the community wants, not what the board wants. We have retired projects before, and if the community decides that’s what it wants to do, fine. But there are a lot of phones in this world that are running software that came from the project. Android uses the Harmony class library.”
As for IBM’s late arrival to the OpenJDK project, Smith said the potential for helping with the testing burdens are exciting for IBM. “We like this heavy testing, so coming in at this part of the cycle is great,” he said. “As the next version comes along, I think we’ve got some ideas. Besides the road map Oracle has laid out, we’ve got some additional areas of interest. We will socialize a lot of that internally, then start to work with the community.”
The beginning of a clear future for Java can be traced to both Thomas Kurian’s speech at Oracle OpenWorld last month, and to OpenJDK lead Mark Reinhold’s blogging. They talked about how OpenJDK 7 will arrive next year, and that closures will be pushed back to OpenJDK 8 in 2012. But what remains uncertain is the future of the community itself.
After Oracle OpenWorld concluded, Greg Luck, developer at Terracotta and author of Ehcache, wrote an incendiary blog titled “Is it time to fork Java?” Luck himself admitted after the fact that the title was purposefully controversial, and that he hoped there would not be a fork of the language.
And Luck said that, through the e-mails he received about the blog, he feels the community is also fork-averse. “At the bottom of the blog, I asked people to give me feedback privately. I’ve had people e-mail me and tweet to me, and I ‘d say the majority want the situation improved, but would rather not fork,” he said.
At the heart of the problem for Luck and others is the independence of the JCP. Luck said that the JCP needs to become an independent standards body in order to cut out the appearance of being controlled by Oracle. While Sun certainly held veto power over all JCP actions, it was also a somewhat lost company, unable to make significant profits from Java and keep the threat of Sun as competition at bay.
“The procedures of the JCP have caused consternation through the years, but on the whole it’s been a good thing,” said Luck. “It’s been relatively slow moving, but that’s not a bad thing with a language as big as Java. When Sun was acquired, that changed the special relationship Sun had with the Java ecosystem. Now that there’s another company involved—and this would have been true with anyone who acquired Sun—the community is concerned.”
This concern is compounded by a motion Oracle made at the JCP, but never acted upon, said Luck. “In December of 2007 in the minutes of the JCP meetings, there was a motion proposed by Oracle and seconded by BEA. That proposal asked that the JCP become an open, independent, vendor-neutral standards organization. There were no votes against it.”
While that resolution did pass, Oracle and the rest of the JCP never made a move to enact it. It would seem, however, that this joint announcement with IBM would herald the coming of its independence.