We're in the process of updating our tools at work and need some advice about which Java framework to adopt. Currently, we have an application server approach because it fits our business model of developing highly customizable applications that we install on clients' servers. We're considering two main options: Spring and Jakarta EE combined with Quarkus for microservices as needed. What are your thoughts? I lean towards Jakarta EE due to our focus on an application server environment, but I'm unsure about its long-term viability and benefits. Any insights would be greatly appreciated!
5 Answers
I think both are excellent choices. Ultimately, it comes down to your team and project requirements. Spring has a larger community and resources available, but Quarkus is built with modern cloud apps in mind and could give you better performance benefits in a microservices architecture. The best strategy may be to pilot both and see which one fits your needs better before making the final call!
Having worked with Spring for over a decade, I have to say it still gets my vote. Quarkus is also great, especially for Kubernetes, but Spring feels more robust and is widely known, which makes it easier to find developers. If your company has legacy systems employing Spring, sticking with it could save you a lot of headaches down the line.
Keep in mind that Jakarta EE is just a standard, not a standalone framework. It’s about what you build on top of those standards. Spring has a lot of built-in options, so if vendor stability and avoiding a lock-in situation are concerns, Jakarta EE with a compatible server like Payara could work well. Remember, Spring does have a big ecosystem, but that doesn't mean it's the only way forward.
That’s true! The transition to Jakarta does come with its complexity, especially around updates and compatibility.
Exactly! But the ability to adapt is key—Jakarta offers a more stable long-term path compared to proprietary solutions.
I’d suggest looking at this from an architectural standpoint. Consider your deployment environment: is it server-based, cloud-based, or using containers? Also, think about your existing system components like databases or messaging services. If you’re using microservices with Kubernetes, Quarkus might be the right fit, while Spring could be better for a more traditional setup. Hiring and onboarding is also easier with Spring due to its popularity.
I see what you mean! But saying that using containers leads directly to choosing Quarkus may be an oversimplification—Spring can do similar things.
From my experience, both frameworks have their strengths depending on what your existing systems look like. A good approach is to pick a moderately complex piece of functionality and implement it in both frameworks. This will help you evaluate which framework offers a more straightforward migration path and meets your current feature needs. I don't think either choice will disappear in the near future, so focus on practicalities.
Thanks for the suggestion! We’re planning to implement new features with the chosen framework while gradually migrating the legacy code. I absolutely agree that testing with Spring on application servers is essential. As you said, it’s a big responsibility to select the right tools for the dev team.
This kind of thorough testing is often overlooked. In reality, we usually have to make an educated guess and hope for the best. It can lead to significant consequences down the line.
Definitely! Pilot projects can help a ton in understanding long-term viability and team adaptability.