Today Oracle announced the availability of Java Enterprise Edition (EE) Version 7. This marks the first Java EE release under complete Oracle stewardship and is an important milestone to assess Oracle's stewardship of Java and its implications for the enterprise.
No doomsday here
There was a lot of concern in the Java community on how Oracle would handle the future of Java, that came under its control with the Sun acquisition. The majority of voices were critical, the father of Java, James Gosling, being one of the most critical ones. But criticism has calmed down over the years as Oracle has kept Java open and continued to develop it further - with the similar principle of primus inter pares like Sun did.
With involvement and contributions from co-opetitors like Google, IBM, SAP, Sybase, Tibco and VMware there certainly is trust in the Java EE community to work with Oracle. And about 9 million Java developers and 18 Java EE compliant application servers give credit to the wide adoptions and relevance of Java.
Screenshot from Webcast |
Java remains competitive
With the Oracle investment, Java remains a competitive development language for enterprise applications, but despite the enormous amount of applications and systems running on Java, Java is playing catch up on some of the newer technologies. Take HTML5 support as an example, where we are already in the disillusionment of phase of HTML5 adoption with e.g. Facebook recently abandoning their HTML5 efforts for the sake of native mobile apps.
So with HTML5 support now coming to Java EE 7, Oracle is playing catch up to a certain point, but the consumer application market seems to have been gone anyway - the question is, will this make Java more attractive for enterprise application development.
Screenshot from Webcast |
On the core Java side, Oracle added support for JSON 1.0, something that could have been worked around before via library inclusion, but with support inside of the platform, it makes JSON usage easier and more robust. This also makes the creation of HTML5 applications much easier, which are connected through Websockets 1.0 and provide necessary life cycle methods for nature of the many HTML5 applications out there. And making the HTML5 markup easier from Java Server Faces 2.2 is an important productivity step when building HTML5 apps.
I guess with the combination of the three above - for a user interface intensive enterprise application like e.g. employee self service on HTML5, you will save up to 10% of development effort and will achieve a much more robust application as a end product.
And the addition of simplified JMS, CDI as a core component model and bean validation on POJOs with improved default resources for JDBC / JPA and concurrency will help developer productivity further. It certainly does not vault Java into the productivity range of some of the popular scripting languages, but that comparison is not fair from the starting premise - Java is a fundamental programming language, not a scripting tool.
Key enterprise additions
Oracle addressed some key weaknesses of Java for enterprise processes with EE 7. Unfortunately there are a lot of long running processes in the enterprise, and Java was never the ideal choice to automate these - as the Java processes would be unreliable and seldom there when needed. With the the additions of batch applications this is being addressed and I am very curious to hear about success of the first batchlets out there.
Hand in hand go the extension of the concurrency utility APIs, with the addition of asynchronous capabilities - a new category of applications is now attainable with Java, that it was better not to use Java or before. How far this will get Java applications for multi-threaded concurrent tasks - we will see and hear in the months to come.
What was missed
The Java community had some hopes that Oracle would also address some of the caching challenges, but already a few months ago the new JCache was cut out of the release schedule for EE 7. Similar the high hopes for more PaaS support have been delayed towards EE 8, as known since fall last year.
Oracle did the right decision to not wait longer, as enough critical substance is in EE 7 and the community should not have been kept to wait longer for them.
After EE 7 is before EE 8
It will be key for Oracle to quickly increase the caching capabilities with JCache in EE 8, maybe even a major EE 7 dot release. A tender spot for Java applications for some time. The cloud / PaaS capabilities will be similarly critical. Though they give the ecosystem of PaaS vendors some more breathing room to differentiate their offerings and lead further - which helps Java overall.
Screenshot from Webcast |
Advice for enterprises - purchasers
Look for EE 7 adoption from vendors and first experiences before postulating it in RFPs. When promising and encouraging, do not hesitate to add to your requirements. Many benefits from EE 7 will make your enterprise application more attractive to end users and more stable on the backend side, so start the conversation with vendors early.
Advice for enterprises - builders
If you haven't - it's time to get your hands dirty with some lab installs and trials. Focus on the highest benefit drivers, probably focus on the batch and concurrency pieces first. And have a look at NetBeans 7.3.1 as well as Glassfish 4.0
Advice for ISVs
If you are only looking at EE 8 now, you are behind already, time to catch up. If you haven't moved to HTML5 yet - this is a good evaluation project. Check your defects and support requests in regards of stability needs of background, long running processes. There may be some low hanging fruits there.
MyPOV
Oracle has shipped a solid and attractive release with EE 7. It now needs to maintain momentum to keep the install base and not loose more hearts and minds to the scripting languages. A roadmap and milestones for EE 8 coming out soon - will be the first step. But for now take a deep breath and enjoy Java EE 7.
P.S. Many thanks to Oracle's Mike Lehmann and Claire Dessaux for a pre-launch briefing.