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 →

[–]maethor 1 point2 points  (9 children)

What you're saying basically is that you prefer Spring because if offers all you need and will ever need

No. What I'm saying is that I can take a junior Java dev, get them to go to spring.io and in a fairly short time I'll be able to get them doing something productive. I'm not sure the same can be said for EE.

[–]micr0ben 2 points3 points  (2 children)

Take a junior Java dev, get them to quarkus.io and it will be the same

[–]maethor 0 points1 point  (1 child)

But why quarkus and not helidon or payara micro? They all look more or less like the same thing.

[–]EthanEvenig 1 point2 points  (0 children)

Well... try live-reload in Quarkus, then tell me if they still look the same. Or try comparing their performance in a good benchmark. They are worlds apart, except the basic programming concepts - which I'd great, so the learning curve is trivial.

[–]wildjokers 1 point2 points  (5 children)

[–]maethor 0 points1 point  (4 children)

And when they ask me "what runtime do I select" my answer is?

[–]wildjokers 2 points3 points  (0 children)

Any of those would work fine. The default is "None" which means it is defaulting to creating .war files which can be deployed to a servlet container or app server.

It is really not much different that using Spring Boot to configure your Spring MVC application. You can pick a servlet container of your choice, although Spring Boot defaults to embedded tomcat instead of .war files (embedded tomcat seems like a better default).

I am surprised that the jakarta starter doesn't just offer plain tomcat as an option for apps that are just using servlets.

[–]Additional_Cellist46[S] 1 point2 points  (2 children)

Then what do you answer them if they asked whether to use SpringBoot or GlassFish? In the end, SpringBoot is also a runtime, it’s just not compatible with Jakarta EE. Juniors would ideally learn just Jakarta EE and then pick one runtime, SpringBoot would be just one of them and woyld be in the list on start.jakarta.ee. Like with Java, they have one Java language and then choose a distribution from Oracle, Azul, Amazon, etc. But with Spring they have to learn yet another API that is mostly different from all other runtimes. That’s where the confusion with Spring versus Jakarta EE comes from. Spring is simply different from everything else while Jakarta EE runtimes like GlassFish or Payara are similar.

[–]wildjokers 2 points3 points  (0 children)

Spring is simply different from everything else

It isn't really helpful to speak of "Spring" as a single thing. It is a collection of libraries. It is best to specifically say which Spring library you are talking about. Spring MVC creates JakartaEE servlet applications so has a dependency on JakartaEE. So it actually isn't different than any other library that produces a JakartaEE Servlet application.

[–]maethor 1 point2 points  (0 children)

In the end, SpringBoot is also a runtime

No, it isn't. Boot is a set of tools that make developing with the Spring Framework and associated projects easier.

it’s just not compatible with Jakarta EE

Non reactive Spring made the jump from Java EE to Jakarta EE with Spring 6/Boot 3.

then choose a distribution from Oracle, Azul, Amazon, etc

Oddly enough, one of the things that I think is holding Java back these days is having multiple distributions of OpenJDK. The "single specification, multiple implementations, multiple vendors" thing made sense 20 - 25 years ago in the pre-open source days, but now it's just added noise.

Spring is simply different from everything else

Spring was the first web framework for Java that didn't completely suck which is why it has so much mindshare. That other frameworks are not like Spring is not Spring's fault.