The following is just my personal opinion of where Jakarta EE may be going. I am far removed from the decision makers and this opinion is based on what I have read and my experience as a teacher. Feel free to label me a crackpot.
I began to teach J2EE in 2002. It was a mess. Most of my time was spent on explaining the purpose of the numerous xml files and the three strange beans, session, session stateless and EJB. Of course, this was in the days when it was thought that programs will be frequently reconfigured via their xml files and that pooling the strange beans was the state of the art. When I got a copy of Rod Johnson’s book J2EE Development without EJB I thought that the concept was intriguing. However, I was required to teach what was most commonly used in industry and at that time it was J2EE.
Fast forward to today and much of what Rod rallied against and that led to the creation of Spring has changed. While some may disagree, I find Java EE 7 easier to use and easier to teach than Spring.
All hell broke loose last year with the much-delayed release of Java EE 8. Components that we were looking forward to were dropped. The IDEs were slow to upgrade to Java EE 8. Then came the bombshell that Oracle was going to drop their stewardship of Java EE.
The Guardians came into being just before the release of Java EE 8 when Oracle announced that it was dropping certain popular new components. While I could speculate why Oracle did this and complain bitterly there is nothing to be gained. Oracle controls the destiny of Java and as a corporation they will make decisions that have a positive effect on their bottom line. I can only assume that the expense of maintaining and promoting Java EE was no longer cost effective. The money invested in Java EE could be spent in other areas that offered the company a higher rate of return.
Oracle then began to either donate and/or make fully open source different parts of their Java portfolio. NetBeans went to Apache and Java EE went to Eclipse. Fortunately, the word Java is not in NetBeans, so it kept its name. Java EE needed to be re branded for no discernible reason. There was much written on this but in the end it turned out to be nothing more than a distraction. It also ignored the real issue.
Java EE is a full stack development environment for enterprise level applications running on an application server. It was promoted as such and Oracle had evangelists travelling the word to get that message out. That ended abruptly when the evangelists were all let go. I was disappointed because I thought once I retired from teaching I could become an evangelist. That was also the point in time when Java EE began its slow death march inside Oracle.
Apache, Eclipse and other open source foundations do an amazing job at ensuring that the software that falls under their umbrella are engineered to the highest standards. What they don’t do effectively is to promote or evangelize their portfolio of software. Don’t get me wrong, I have seen Eclipse at conferences and I will be submitting proposals to an Apache Con coming up in Montreal soon. That is not the sufficient level of promotion that Java EE needs.
Java EE is not without its cheerleaders. Red Hat, IBM and Payara as well as some others are actively out there promoting Java EE but none have the gravitas that Oracle, the home of Java, had. In my myopic view of the world, Spring has managed to convince the enterprise development community that Java EE is nothing more that the necessary support libraries for some aspects (sorry about the AOP humour) of Spring.
What does this all mean to Jakarta EE? On the plus side, now that its fully open source many more interested developers will be able to contribute to its various components. On the minus side, I fear that a clear vision of what Jakarta EE is will be lost. Communities will coalesce around specific elements for their own self-interest. Self interest is a good thing. What I believe will be lost is a vision of Jakarta EE as a complete and integrated system to be considered along side of Spring or Vaadin. I worry that Jakarta EE will become another Commons style library.
That was a depressing conclusion. What can be done? I am way out of my league on this. I can only speculate that we need one of the existing corporations or the creation of a new one to put Jakarta EE on the same playing field as the frequently mentioned Spring. Spring is an excellent framework and I have taught Spring but it’s a different product from Jakarta EE. Spring is also backed by the deep pockets of Pivotal who are in turn backed by the enormous pockets of Dell. An obvious choice for a corporation to step up is Payara who promote their working version of Glassfish. Whomever it might be I wonder if there is the necessary investment available to return EE to its status as a true enterprise stack.
For the past three years I have attended parties at Bain Capital while at JavaOne. They have a wall with the names of all the companies they have invested in. A company that leads the commercialization of Jakarta EE should be on that wall alongside Twitter and others. To the investors out there I will happily provide you with my mailing address to send me the cheques.
Anyone want to start a business or hire a 64 year old evangelist?
One final word concerning the Java EE Guardians. It came into being because it was felt that Oracle was not listening to the developer community. With the donation to Eclipse I am uncertain what the raison d’être is of the group. Reza Rahman has done an amazing job in rallying the EE community to get their voices heard. Now I think we should all join the Eclipse foundation and directly influence Jakarta EE. We need to make noise inside Eclipse rather than outside.
> I fear that a clear vision of what Jakarta EE is will be lost
I believe there was never a clear vision. I’ve met many developers, with years of experience, who did not have a clue what Java EE is, exactly. They actually mistake it for Spring.
You also see recrutiers everywhere looking for “Spring and Java EE developers”. Whoever understands which is which knows that they are 2 big giants and it is very hard to be good with both of them. I would be very skeptical if I met a developer claiming to be proficient in both of them… like I am when I meet a “fullstack developer”.
> Spring has managed to convince the enterprise development community that Java EE is nothing more that the necessary support libraries
Yes, completely true. Sadly, Spring did not take the time to explain the “platform” either… you see Spring + Hibernate fat apps deployed on Tomcat instead of Spring + clean JPA on Glassfish.
I also believe Java EE is dying. Besides the general confusion around it, it has many issues; the first one being that Oracle allowed vendors to implement more than the spec or even made parts of the spec optional. Let me ask: what kind of standard is that which is flexible? It is never clear to developers what parts of the implementations are spec-compliant and what not, it is very easy to get fooled, use some RedHat annotatation and then your app won’t work on Glassfish… this is the best case, assuming the deployable is still clean.
Furthermore, Project Jigsaw (from Java 9) seems to be an effort in the complete opposite direction of Java EE. It encourages developers to build monoliths, whereas Java EE encourages light deployables… coming from the same company, Oracle, this seems like a contradiction. Maybe they like the monoliths too, maybe they realized Spring Boot took over a lot of the market recently and just decided to drop the dead body in Eclipse’s yard.
This said, I would be sorry to see Java EE go, I like it a lot, these are just my conclusions after looking around a little 🙂