As you probably already know, Java EE has been donated by Oracle to the Eclipse Foundation and re-branded as Jakarta EE. The first version of Jakarta EE has not yet been released (as of this writing), but when it is, it will include all of the specifications and will essentially be the same as Java EE 8 with some updates. As a result, the first release will be christened Jakarta EE 8 to show that the evolution of the platform continues; that it’s not an entirely new platform. That’s a good thing!
In the beginning
Java EE – originally called Java 2, Enterprise Edition (J2EE) – was first introduced in 1999 almost twenty years ago. At that time, it was the state of the art in terms of its approach to distributed computing. It was also a first to attempt standardization across web servers and distributed computing combined; two concerns we now consider inseparable. Before Java EE was introduced, there were many other solutions for distributed computing and web hosting, most notably standardized CORBA; commercial options like WebLogic, and open source LAMP (Linux, Apache, MySQL, and PHP).
J2EE was seen as the simplified and standardized Java answer to CORBA and DCE and it proved to be very popular with, at one time, over a dozen vendors offering competing products. But as it happens with so many standardized stacks, J2EE quickly became very complicated. The vendor products – including JBoss the primary open source contender – became heavyweight and gained a reputation as over-engineered and monolithic. The complexity and weight of J2EE gave rise to Spring and Hibernate in 2002 which, in themselves, have become very large. This gave way, most recently, to Node.js and other “lightweight” solutions.
Faster, stronger, better
While solutions like Spring and Node.js were gaining market share, J2EE, re-branded Java EE, was continuously improving. Java EE had the advantage of drawing on nearly two decades of experience as it incrementally simplified its programming model and implementations became more and more lightweight. Today, a typical Java EE application server uses the standardized POJO programming model inspired by Spring and Hibernate, but launches in under a few seconds; some like TomEE as fast as half a second.
This is not your father’s J2EE
The speed and lightness of Java EE make it very competitive with Spring, LAMP, and Node.js, but sadly most people don’t know how far the platform has evolved. So if you’ve been told that Java EE and its successor Jakarta EE are out-of-date, bloated, and monolithic, you’ve probably been misinformed by people who have no experience with the latest platform including those who may have been deeply involved with Java EE in first 10 years. The platform has evolved and is very different from what it once was. Today it’s a solution that must be considered if you are looking to advance your own skills and deploy mission-critical applications.