“Java EE 8 will not satisfy expectations if there isn’t true modularity in it”
Where does the future of Java EE lie? In the cloud? In the hands of Java EE Guardians or MicroProfile? We invited Jeff Genender, Java Champion and Apache Member, to talk about Java EE 8, the latest news and the initiatives that may or may not make a real change.
Discussions about the future of Java EE persist even after Oracle’s Thomas Kurian made it clear that the company has big plans for enterprise Java. People are still skeptical about Oracle’s strategy, which will be unveiled at the JavaOne conference in September. We invited Jeff Genender, Java Champion and Apache Member, to react to the latest news and weigh in on the future of Java EE 8.
JAXenter: Oracle’s Thomas Kurian told InfoWorld that Java EE will rebooted for the cloud. What’s your take on that?
Jeff Genender: Oracle’s direction has heavily been toward their own cloud play and Ellison wants a piece of it. Ellison wants more revenue from the cloud and I think Kurian’s “reboot” of Java EE is taking this as an opportunity to push people towards their cloud initiative and use Java EE as a carrot to lead people in…. i.e. paying cloud customers. There has been very little activity on the JSR lists, so at this stage I view it as a lot of talk and not much action. But the other possibility is Oracle is doing this themselves in the quiet. I guess we will see and maybe there will be a reboot during JavaOne. At least that is what the rumors say.
JAXenter: You said in your blog post that you have been knee-deep in Java EE since its inception. What do you think about the evolution of Java EE?
Jeff Genender: Java EE, as during the J2EE days, was a way to pull together lots of different APIs to work together, which would give you certification. This was necessary so that different APIs could coexist, which made sense. However, it was an all-or-nothing direction, which was why we were left with these monolithic containers that had everything but the kitchen sink. Modularity was talked about since Java EE 6 and it was clear that it needed to go in that direction. But it never made it in. So today, even though we have the profile concept, Java EE is still viewed as monolithic.
I think people are tired of having to run monolithic containers.
The main problems with Java EE are the fact that the big vendors such as IBM and Red Hat are mandating the support for old technologies and legacy usage. It’s been difficult to throw APIs away because they want to be sure that they support their old customers. They don’t get that deprecation is a part of moving technology forward. If you have customers that still need EJB, keep supporting your old versions, but don’t try to move a new spec forward using technologies that very few people use.
What to expect from Java EE 8
JAXenter: Do you think Java EE 8 will satisfy the community’s expectations?
Jeff Genender: Not unless there is true modularity in it. The tree-based classloader is broken and it is the core of why modularity is difficult in the JVM. I think people are tired of having to run monolithic containers. People want lightweight stacks, especially in light of the cloud. If you have a 4 gig instance in the cloud, you certainly do not want to run a container that requires 3 gig to run it, especially when you aren’t going to use 95% of that API. True modularity will allow people to pick and choose what they want while not having to pull everything in due to the intertwining of a tree classloader.
JAXenter: Will MicroProfile still be relevant if Java EE 8 focuses on microservices?
Jeff Genender: I honestly don’t believe in any of these “profiles”. What we care about is that all of these technologies work when used together. I need to know that I can use restful services and pin any HTTP engine underneath it. But I don’t want to be required to pull in Servlets if I am not going to use it. I may want to use a more performant API like Netty or Mina to handle my HTTP or HTTP/2 base traffic. I don’t want to be married to servlets. The idea behind microservices is that it’s just another fancy name for SOA. Allow developers to pick and choose the technologies that they want, but know that they will work together. Once we start putting together “profiles” we begin to make bigger containers which is what developers do not want. My company has been developing microservices for a very long time for many global 2000 companies, and no two containers look alike for what technologies are used. Every company we do development for has their own set of requirements and we only pull in what we will be using. This is the way that it should be.
There hasn’t been much innovation in Java EE, so its being viewed as out-dated.
Yes, if Java EE 8 gets its act together, MicroProfile will most certainly be irrelevant since they don’t have industry-wide support (at least at this point).
JAXenter: What’s your take on the Java EE Guardians? Have they fragmented the Java EE supporters?
Jeff Genender: The Java EE Guardians haven’t fragmented anything. They appear more as a political organization to get the JSR to have support from Oracle. The fragmentation is microprofile.io. I think the folks at MicroProfile should have taken more leadership in the JSR, or bring their initiatives to the JCP and start a new JSR if Oracle doesn’t want to let go of the old.
I am not convinced MicroProfile will have any successes unless they can get some of the usual suspects involved and play in the sandboxes of the JSRs so a proper TCK can push a true “certification”, if that’s the direction they choose to go. Microprofile.io seems somewhat disorganized as shown by their discussion group, as well as a bit of infighting… so I am not convinced it will have much of a future unless they can get a true captain for that ship. Right now, from an outside perspective, MicroProfile just looks like a Red Hat marketing initiative for Swarm. I challenge Red Hat to take the leadership inside the JCP and make changes there, or step up and take hold of the community.
JAXenter: You said the Java EE Guardians should look at what people want. What is that? Do you have some suggestions?
Jeff Genender: Java EE has always been about pandering to the big players for their legacy clients. The new leadership of JavaEE (if there is one) needs to be more community-focused and get the needs of what the majority wants rather than the few who hold the largest bank balances. If the Java EE Guardians want to make change, they need to get more community involvement and get the voices of the majority to speak up and become a part of the JSR and the spec. Until that happens, we will still have these legacy APIs hanging around and the concept of profiles will never die.
JAXenter: Is Java EE still profitable?
Jeff Genender: Java EE is certainly profitable from the perspective of the big companies that license the app servers and the huge support contracts that fall out of it. But I think that all Java EE container companies are likely seeing a migration away from the monolithic app server and probably a drop in licensing/support fees. There hasn’t been much innovation in Java EE, so its being viewed as out-dated.
If Java EE 8 gets its act together, MicroProfile will most certainly be irrelevant.
My discussions with some of my friends inside of Oracle yielded the exact same results in that they see people migrating away from the big stacks. My guess is it’s a double-edged sword for them. This still make some money off of WebLogic, but they probably also see the cloud as their eventual landing spot. So I guess they are taking this opportunity to keep the game ball and see if they can’t dovetail this into their cloud play.
The JCP has made sweeping changes in the last few years to opening up to companies and individuals to champion JSRs. At this stage, I don’t think Oracle is necessary in what happens to Java EE. If Red Hat, IBM, and some of the other big players want to make change, they can try to step up and take leadership of the JavaEE 8 JSR, and if Oracle doesn’t play nice, just start a new JSR for a new Java EE. Nothing would be more shocking to end users if everyone bailed out of the Java EE JSR and the only “expert” on the group was Oracle. It would die a very quick death. So the community has a lot of power in its direction… someone just needs to step up and run with it — but do it right.
Thank you very much!
Take a look at our Java EE coverage
- Lukas Eder: “Oracle’s ‘official statement’ was probably a necessary PR step”
- Oracle aims high with Java EE, prepares it for the cloud
- Where is Java EE headed to?
- Mark Little: “Java EE needs to keep evolving”
- Martijn Verburg: “The time for the monolithic Java EE platform standard is possibly over“
- Reza Rahman: “Oracle does not really understand the value of Java EE”
- Oliver Gierke: “Previously Spring was deemed proprietary — now the entire Java world is upside down because Oracle loses interest in Java EE”
- Poll: Should Java EE be developed independently from Oracle?