When Oracle purchased Sun Microsystems in 2010, the immediate worry in the marketplace was that the company would become a bad actor around Java. Six years later, it would seem that these fears have come true—at least in part. The biggest new platform for Java, Android, remains embroiled in ugly litigation between Google and Oracle.
Despite outward appearances of a danger for mainstream Java, however, it’s undeniable that the OpenJDK has continued along apace, almost at the same rate of change IT experienced at Sun. When Sun open-sourced the OpenJDK under the GPL before it was acquired by Oracle, it was, in a sense, ensuring that no single entity could control Java entirely, as with Linux.
Java EE, however, has lagged behind in its attention from Oracle. Java EE 7 arrived two years ago, and it’s already out of step with the new APIs introduced in OpenJDK 8. The executive committee at the Java Community Process is ready to move the enterprise platform along its road map. Yet something has stopped Java EE dead in its tracks at Oracle. JSR 366 laid out the foundations for this next revision of the platform in the fall of 2015. One would never know that, however, by looking at the Expert Committee mailing lists at the JCP: Those have been completely silent since 2014.
(Related: JBoss reaches version 7)
Is this indicative of Oracle stonewalling innovation in Java EE 8? In a statement to SD Times, an Oracle spokesperson wrote that “Oracle is committed to Java and has a very well-defined proposal for the next version of the Java EE specification—Java EE 8—that will support developers as they seek to build new applications that are designed using microservices on large-scale distributed computing and container-based environments on the cloud. Oracle is working closely with key partners in the Java community to finalize the proposal, and will share the full details with the broader Java community at JavaOne in September.”
One person who’s worried that JavaOne won’t reveal any amazing new developments in Java EE is Reza Rahman. He’s a former Java EE evangelist at Oracle, and is now one of the founders of the Java EE Guardians, a group dedicated to goading Oracle into action, or going around them entirely.
“Our principal goal is to move Java EE forward using community involvement. Our biggest concern now is if Oracle is even committed to delivering Java EE. There are various ways of solving it, but the best is for Oracle to commit to and deliver Java EE 8,” said Rahman.
His concerns come from the fact that the Java EE 8 specification has been, essentially, stalled by lack of action on Oracle’s part. The specification leads for the project are stuck in a sort of limbo, with their last chunk of work completed in December, followed by no indication of movement inside Oracle.
What exactly would Java EE 8 look like? Fortunately, the JSR 366 team has a massive survey at its fingertips, detailing exactly what thousands of users would like to see in a revised edition of the platform.
Road map
Those survey results give a clear picture of the priorities of Java EE developers. Topping the list of desired changes is JSONB, a new API for binding JSON in a manner similar to JAXB. Other high-demand changes are around simplifying security and improvements to JCache.
With such a clear survey of what users want, coupled with a completed initial specification proposal from the JCP, one would expect Oracle to be well on its way to updating Java EE. Rahman, however, said that Oracle has yet to respond to even the executive committee members of JSR 366’s demands that the project move forward.
“Every EC member has told Oracle the same thing: If we don’t get any concrete response from Oracle at JavaOne, or the response we get is that they won’t do it, we can move forward with Java EE in the open-source domain with the vendors,” he said. “The vendors are definitely interested in moving EE forward. In the short term, we want to move it forward, but maybe in the long term we will need to find another standards body.”
That’s because the JCP remains controlled by Oracle. Without the company’s approval, the Java EE specification will be just that: a specification. Without Oracle’s permission for others to build a Java EE implementation and test them against the Test Compatibility Kits it owns (and which is the gatekeeper to being certified as compatible with the specification), there’s little that can be done within the JCP to push things along.
Two members of the Java EE 8 expert group, in fact, have signed on as supporters of the Java Guardians: Werner Keil, a member not only of the Java EE 8 expert group but also a member of the JCP’s overall executive committee; and Jelastic founder Ruslan Synytsky. Along with the creator of Java, James Gosling, and Rahman, 166 developers and Java pundits have signed their names in support of the Java EE Guardians.
Java EE still matters
Rahman is not just kicking dirt at Oracle over EE to start a fight: He genuinely loves the EE platform. “There are people who used J2EE or Java EE 5 and they think Java EE is not capable of evolving. The stuff they’re talking about is a good 10 to 12 years. How do you not think something has evolved in eight to 10 years? The reality is, I think Java EE is the most easy to use and productive platform out there. Few platforms can claim the feature completeness and ease of use of Java EE,” he said.
John Rymer, vice president and principal analyst at Forrester Research, agreed with Rahman. “In tech, nothing as big as Java EE dies. People just move on to newer technologies and design approaches and application ideas,” he wrote to SD Times.
It would seem strange, then, that Oracle wouldn’t be eager to serve the community of businesses already using Java EE for mainline business processes. Indeed, with the advent of Android and Hadoop, Java EE is considered more useful to businesses.
Jim Scott, director of enterprise strategy and architecture at MapR, said that Java EE is still a major part of Java in big businesses. “Java EE covers a lot of APIs, and I haven’t heard anyone anywhere say they are going to stop using those APIs,” he said.
“For lightweight services, however, there has been a trend for a number of years toward Node.js and other similar frameworks and runtimes, but nothing that I would really consider to be replacing Java EE uses. Utilizing the Netty and Jetty frameworks from Java is getting much simpler, which could erode some use of Tomcat. But servlets in Java are still probably one of the most prevalent uses of Java out there.”
And therein lies, perhaps, one of the ways forward for Java EE: microservices. The Java EE Micro Profile, proposed by IBM, Red Hat, Tomitribe and others at DevNation a few weeks ago, could be the first step toward a community-driven Java EE.
While the Java EE Web Profile has been available for a few years now, the idea of multiple profiles—specifically slimmed-down Java EE environments—for other purposes has been kicking around for just as long. It would seem that without Oracle to lead the way, however, IBM and Red Hat are stepping out to take the reins outside of the JCP.
At present, the Micro Profile effort exists solely as a website dedicated to surveying the needs of the community, much like the survey done by Oracle for Java EE 8 in the first place.
Craig Muzilla, senior vice president of the application platforms business at Red Hat, said, “Java EE was never this monolith; people were using different frameworks anyway, like Spring or Struts, but you would still need a runtime environment. So the idea of Java EE not only coming with a programming model but with a service construct is still relevant, even if the form factor changes.”
Muzilla said that Java EE (the specification) does seem to be in trouble, but he also said that Red Hat has customers who want to continue using and seeing advancements around Java EE. “There are a lot of vendors that want it to evolve and become more multi-tenant, more modular. Hence the idea of the Micro Services Profile. It has to become more modern,” he said.
The only thing standing in the way of evolving Java EE right now, said Muzilla, is Oracle. “Basically, what Oracle does is they hold the keys to the [Test Compatibility Kit] for certifying in EE, but in terms of creating other ways of using Java, other runtime environments, they don’t have anything other than their name on the language,” he said.
“As long as you’re adhering to the trademark of the language, you can create all kinds of different uses of the language. EE may not continue to go on to version 8, 9 or 10. We hope it does, but there may be other evolutions.”