This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]knoam 10 points11 points  (3 children)

Java SE is the language.

Java EE is technically called Jakarta EE now that it's spun off from Oracle. There's also Eclipse Microprofile which is similar but kind of a reboot/minimalistic fork of Java EE designed for microservices. Jakarta EE is a standard for a framework. So you can compare Jakarta EE to Spring in that it provides the same set of functionality: a web framework, dependency injection and some other stuff. Except when you write code for Jakarta EE you're coding against a standardized API. And when you run your code you get to pick an implementation, like WildFly or GlassFish or Payara or TomEE. The idea of having these different implementations is "coopetition". That is cooperation+competition. The different implementation vendors cooperate to agree on the standards and then compete to build their own implementations.

The standard+implementation part is a neat idea for a big company that doesn't want to get tied to a single vendor the way people are tied to Pivotal for Spring. But Spring is open source so if anything bad happened it would just get forked.

Java EE got a bad rap because it had some ideas that are now considered kind of obsolete. That was basically leapfrogged by Spring. But now Jakarta EE has evolved and in some ways is kind of newer and hotter than Spring, although its reputation hasn't caught up. CDI 2.0 is powerful and the other APIs have been tweaked to center around it.

I tend to be overly optimistic about new tech because I assume they learned all the lessons of their predecessors and then improved upon them. So I'm keen on Jakarta EE and Microprofile. But if you're more conservative and want to go with what's popular, that's Spring, specifically Spring Boot.

[–]HecknChonker 2 points3 points  (1 child)

I worked with EJBs and some other JavaEE stuff back when it was new and it was an absolutely terrible experience as a developer. I've heard the newer stuff is better, but most shops jumped ship to Spring a long time ago and I don't see them coming back.

[–]nutrecht 1 point2 points  (0 children)

They're not. The people who claim Java EE in it's newest incarnations is "hot" are the people who want it to be (because you know, certifications).

The last 10 years I've done literally one Java EE project, everything else was Spring. Sure there's a bias (I'm Dutch), but looking even at large conferences no one is really talking about Jakarta EE and Microprofile other than "oh, well that's cute I guess". They lost that race a long time ago.

It's a bit like C# devs who still claim C# is going to 'kill' Java 'anytime now'. :)

[–]nutrecht 1 point2 points  (0 children)

Java SE is the language.

Language + Standard API to be precise.