DEV Community

Anastasia Khomyakova ❤ for Konfy

Posted on

"When it comes time to choose, my familiarity with Spring outweighs the innovations of Quarkus", —Tom Cools

Hello folks!

If you want to dive into Advanced Testing Patterns, you should definitely attend Tom's Cools presentation on the 26th of June at 16.45 CEST!! Meanwhile, let's enjoy his cool interview!

Tom called himself a geek in all facets of the word, including but not limited to board games, comic books, and programming. Developer without borders, both geographically and technically. Active as a consultant, usually for some of the biggest financial institutions in both Belgium and The Netherlands. Next to that, I am trainer/teacher who loves to share not only knowledge but also a passion for our craft.

What new countries have you “visited” thanks to the online format?

I've given some only talks for meetups and conferences in Portugal, Germany, UK and Netherlands.
It's been fun but it would have been nice to travel there of course ;).

If there are Java Champions, perhaps we should add Java Princesses and Java Dragons, too?

Nah, Java Champions in itself is enough. I'd leave the princesses and dragons for the Super Mario Bros.

How has your programming style with Java evolved over the past couple of years? What are some of the things that led to the significant improvements?

I got better at using shortcuts in my IDE, so I refactor way faster than before.
Java Streams are also pretty amazing in dealing with collections.

Do you have any personal habits around development or self-care that you would like to share with our audience?

I was lucky to transform my coding hobby into my job, but for self-care reasons, that also means I needed to find another hobby.
Can't always be coding. :)

There are Groovy, Scala, Kotlin, and many others in the family of JVM languages. What features do we miss in Java in comparison with other JVM languages? Elaborate.

Some of the features of those languages are slowly finding their way in Java (see Records).
I've been coding some Kotlin lately and I must say I prefer their way of handling nullability. Optional<> in Java helped, but it's pretty verbose.

There are plenty of reasons why Java, being one of the older software programming languages, is still widely used. For one, the immense power one wields when using Java is enough to make it their staple—coupled with the possibility of using good Java frameworks that can reduce the turnaround time for big projects. Your favorite framework? What advantages and disadvantages it has?

Despite the season triggers all my allergies, Spring is my favorite framework.
Spring has been around for a long time and with the advent of Spring Boot it cemented itself as my de-facto choice.
It just offers so much convenience when building software and integrating it with other tools like Kafka, RabbitMQ and databases.
I am keeping a close eye on Quarkus and have been impressed by it's evolution so far. When it comes time to choose, my familiarity with Spring outweighs the innovations of Quarkus.

In the beginning, Make was the only build automation tool available beyond homegrown solutions. Make has been around since 1976, and as such, it was used for building Java applications in the early Java years.
However, many conventions from C programs didn't fit in the Java ecosystem, so in time Ant took over as a better alternative. Maven continues to use XML files just like Ant but in a much more manageable way. And then, Gradle was built upon the concepts of Ant and Maven.
Fancy Gradle or old school Maven? Or Ant?!

I fancy Maven because it feels more structured to me than Gradle. Gradle is very flexible in how you configure it but that is its biggest downside for me.
Could be this is just my familiarity-bias talking again... but I'd choose Maven any day.

Are we going to use modules ever? When we create a module, we organize the code internally in packages, just like we previously did with any other project. So why are packages not enough?

I've been seeing a lot of debate on this. My take on it is: "If you see value in it, use it. If not, then don't." Maybe packages are enough for your usecase.
That being said, JPMS enables some pretty nice features like building your own "mini Java" which only includes the modules you need.

Register to attend
Check out our Website

Top comments (0)