As some of you are aware, the Java EE Guardians and DZone jointly conducted a community survey to help determine Java EE 8 features prior to JavaOne 2016. You may also be aware that we shared the results of that survey with Oracle before the details of the renewed Java EE 8 scope was announced. Now is a great time to start analyzing those results a bit more.
The Motivation and Context
Shortly before JavaOne 2016, after months of silent inactivity, Oracle announced that it was committed to delivering Java EE 8. While this was undoubtedly good news, the problem was that Oracle appeared to also wish to significantly shift the focus of Java EE 8 — basically unilaterally. Oracle's rationale was that so much time had passed since initial launch that the focus of Java EE 8 needed to be shifted. We thought the best way to ensure that was a wise thing to do is by asking the community directly through an open survey — the very same way the initial scope of Java EE 8 was formulated.
As it turns out now, the core objectives of having the survey were accomplished in more than one way. During the JavaOne time-frame, Oracle announced it's own open survey not just to determine the scope of Java EE 8, but also the scope of Java EE 9. More recently, Oracle announced the results of that survey and finalized the focus of Java EE 8. Although the surveys were clearly different, the results of the Oracle survey was very similar to what the folks that took the DZone/Java EE Guardians survey indicated. Indeed, the ultimate good news is that the final focus of Java EE 8 is basically aligned with the results of the Java EE Guardians/DZone survey. Perhaps that isn't mere coincidence. At JavaOne 2016, the Java EE specification leads promised to take a very close look at the DZone/Java EE Guardians survey results. If they did indeed do that, the community should be humbly relieved and grateful.
The survey did well, considering the short time frame that it had been open and the relatively modest resources that we had. In the end, we had 800+ input points. While smaller than the Oracle survey, this is enough to draw reasonable conclusions on what the community thinks about Java EE 8's scope (for context, US professional surveys collect about 1,000 random input points for a population size of 300 million+). The quality of the input is quite good, including many thoughtful comments. For those that don't want to read through all the survey results, I'll provide a short summary:
- The survey completion rate is 100%, which shows how serious the folks that participated are.
- Almost 70% said they were OK with follow-up questions, which shows how engaged the folks that participated are.
- There was relatively strong support for Servlet 4, Java SE 8 alignment throughout all Java EE APIs, more robust JSON support, and a security API overhaul.
- There was reasonable support for dynamic configuration and JCache.
- There was relatively weak support for eliminating EJB in favor of CDI, MVC, NoSQL, more reactive programming, and microservices.
- Most people want Java EE to take a relatively conservative approach to standardization and avoid hype.
- The majority of people would like to see the Java EE release frequency accelerated.
In the coming weeks, I will analyze each of these results in much greater detail. I will also put the results in the context of the Oracle survey results, Oracle's actions so far, as well as other important public data such as the latest ZeroTurnaround developer productivity survey.
What Oracle Is Doing
As you may be aware, Oracle promised to deliver Java EE 8 by the end of this year with an altered scope. They have also promised to deliver Java EE 9 by next year. So far, things for Java EE 8 look good, and it may even be that Java EE 8 will be delivered around the JavaOne 2017 time frame. The following is a summary of what Oracle is doing with Java EE 8 so far:
- They are moving forward with Servlet 4, JSON-P 1.1, JSON-B 1.0, Java EE Security, JAX-RS 2.1 and JSF 2.3. In addition, CDI 2 and Bean Validation 2 is moving forward under Red Hat's leadership.
- Oracle is dropping Java EE Management, JMS 2.1, and MVC. However, Oracle is transferring full ownership of MVC to the community. The community will move MVC forward on its own.
- Oracle has not stated a clear position on aligning Java EE 8 with Java SE 8. It seems most of this work will be done including changes to JAX-RS, JSF, JPA and JSON-P. I am following up on this topic in the Java EE 8 expert group.
- Oracle had initially indicated that they would include a new configuration JSR in Java EE 8. It is a bit disappointing that Oracle is now not pursuing this JSR for Java EE 8. However, Oracle has acknowledged that this JSR is important, but it is being deferred for now to deliver Java EE 8 on an accelerated schedule.
- Oracle has not been clear about what it intends to do with JCache. However, it is already possible to use JCache in Java EE applications.
In addition to my more detailed analysis in the next few weeks, I would encourage you to look at these survey results yourself and get involved in Java EE 8. You can certainly do so by becoming a part of the Java EE Guardians.
Lastly, this entry would not be complete without mentioning the MicroProfile initiative. The initiative is forging ahead with a 1.1 release. It is targeting many of the features that Oracle is interested in for Java EE 9, including dynamic configuration. The idea is to make collaboration-based microservices centric products from Java EE vendors available essentially before Java EE 8 is released. We can hope that the MicroProfile efforts will converge with Java EE 9 sooner rather than later.