In our new Java Monthly edition, we’d like to introduce you Roberto Cortez. He was kind enough to share his experience on 11 more Java-related questions.
Roberto Cortez is a Passionate Developer, Blogger, Youtuber, Speaker, JUG Leader, Java Champion. He started to learn Java back in 1998 and since then has worked with many Java based technologies like JavaEE, Spring, Hibernate, GWT, JBoss AS and Maven just to name a few, always relying on my favorite IDE: IntelliJ IDEA. The direct contact with the Java community made him want to become an active member in the community itself. For that reason, he has created the Coimbra Java User Group, started to contribute to Open Source on Github and launched a blog, so he can share some of the knowledge that he gained over the years.
Dreamix: Spring is heading the same way as Quarkus (native images, ahead of time compilation and so on). In what aspects Quarkus is better fit for your application?
Roberto Cortez: It is great to see Spring going in a similar direction as Quarkus. It means the ecosystem recognizes that native images and ahead-of-time compilation have value. Quarkus was built with these features in mind, so we believe that Quarkus is still ahead in these areas compared to other technologies.
Dreamix: Native images are great, but when you use some custom library or proprietary driver, native buildings almost always fail. How you resolve such issues and do you have anything you follow in order to not enter such cases.
Roberto Cortez: Quarkus provides an extension mechanism to wrap original libraries and rewrite the pieces that make the native compilation fail. In other cases, we provide pull-requests to the original library to make it more native build friendly.
Dreamix: Have you encountered any upper limit for the size of application that Quarkus is good for. Spring initially started as a framework not oriented in clouds and it can handle any app size, but Quarkus is more cloud-oriented, where we have “micro” service approaches.
Roberto Cortez: In reality, Quarkus can be used to build any kind of application. While it is true that it was built with cloud-native in mind, we have seen companies and developers using it to build plain old monoliths.
Dreamix: Quarkus is tightly coupled with Kubernates. Do you find this problematic and what will happen if Kubernates fades away and something new comes in the field – can Quarkus handle that?
Roberto Cortez: Quarkus does provide a Kubernetes Extension, but it is not tied to Kubernetes in any way. While I believe it is unlikely to see Kubernetes fade, it is just another extension in Quarkus that can be replaced by the new shiny thing.
Dreamix: What is your source of knowledge for Quarkus? Do you find the Quarkus documentation sufficient to get a deep understanding of Quarkus?
Roberto Cortez: The Quarkus documentation in https://quarkus.io contains everything you need for both beginners and advanced users.
Dreamix: Spring-starters is something that increases pom manageability and provides an easy plug-and-play solution to a problem. Spring also allows the developer to create their own starters. Does Quarkus offer something similar to this?
Roberto Cortez: Yes, you can use https://code.quarkus.io for the same functionality.
Dreamix: Quarkus 3.0 is out, what do you like most about Quarkus 3.0 and do you have some hints on easy upgrades?
Roberto Cortez: We have a huge amount of work to move Quarkus 3.0 to use the Jakarta namespace. While this is not something that brings new features to developers. it will prepare Quarkus for everything new coming in Jakarta. Aside from that, we also added a new Dev-UI, Hibernate 6, and Hibernate Reactive 2 support.
Dreamix: What is your favorite feature/module of Quarkus?
Roberto Cortez: I’ll mention two: Live Reload and DevServices
Dreamix: Quarkus vs Spring has been discussed ever since Quarkus came out. What is your opinion on the topic and why should we choose one over the other?
Roberto Cortez: Certainly, this is an interesting debate. I think the community benefits from both technologies challenging each other since each party has to innovate so it does not fall behind, and the developers will benefit the most from this competition. There are many considerations you should take before picking a technology. In the end. teams need to be happy with their choice.
Dreamix: How do you update yourself about the latest trends in Java?
Roberto Cortez: I usually attend conferences and follow many people that talk about Java on Twitter.
Dreamix: Can you recommend a favorite book about programming? What about a favorite book in general?
Roberto Cortez: For Java, my recommendation is Effective Java by Josh Bloch.
Is there anything else you would like to ask Roberto Cortez? What is your opinion on the questions asked? Who would you like to see featured next? Let’s give back to the Java community together!