DEV Community

Anastasia Khomyakova ❤ for Konfy

Posted on

"I like the direction the new Java is going", — Adam Bien

Hello wonderful friends!

We can't wait to see at our jLove Conference on the 25th-26th of June

We were lucky to interview Adam Bien and got to know his thoughts about the current and the future situation with Java! It also was nice to remind ourselves that to be efficient doesn't mean to work long hours! We can't agree more! 'Work Well or a Lot' ;)

Adam is working as a a freelancing consultant with Java since JDK 1.0, with Servlets/EJB since 1.0, before the advent of J2EE in several large-scale applications and with JavaScript since 1995 on Netscape Navigator.

He is an architect and developer (with usually 20/80 distribution) in Java (SE / EE / Jakarta EE / MicroProfile) and Web (ES 6+, Web Components, Web Standards "no frameworks") projects. Often he is starting as an architect and after a few days finding himself developing PoCs, performing code reviews, or helping the teams developing critical parts of the system.
He has written several books about JavaFX, J2EE, and Java EE, and He is the author of Real World Java EE Patterns—Rethinking Best Practices and Real World Java EE Night Hacks—Dissecting the Business Tier.

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

In the last year, I delivered the most talks ever without leaving home. Finally, I could attend conferences in new countries like Japan, Brazil, Russia, Latvia, or Turkey.

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

A Java Dragon is an excellent idea. I attended some conferences in Krakow, Poland. A city well known for a Wawel Drago.
Java Godzilla would be great as well :-)

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?

In the pragmatic MicroProfile / Jakarta EE / Java projects, the code is so lean that it is tough to remove anything. With the release of Java EE 6, 12 years ago, you can write plain, lean POJOs. Lean code combined with Convention over Configuration removed the bloat. With the introduction of Docker and containers, we get proper decoupling what makes many superfluous layers and indirections obsolete.

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

Learn as much as possible, enjoy your work, be efficient, and don't work long hours. Sometimes you achieve more in one, focussed hour with lots of fun than in an unproductive day.

Obviously, projects Valhalla, Loom and Amber have received a lot of buzzes, but there is a healthy level of skepticism about the projects. Do you have any thoughts you'd like to share?

I like the direction the new Java is going. I'm following Valhalla, Loom and Amber and I'm rather enthusiastic.

What is planned for Java after Java 17? How will it change the everyday life of a Java developer?

Java 18 is to far away. With Java 16 you get already Code Blocks which help you to write JSON: https://youtu.be/SyZ8W5E5Xuw.
I hope the combination of Java Records and Pattern Matching will allow us to remove even more unnecessary layers and indirections.

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.

I spent my time with JavaScript and Java only. I miss object destructuring in Java. With Java Records it is half here but not arrived yet.

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?

I'm deleting frameworks for years in Java and now in JavaScript. My projects are either Java SE or MicroProfile, Jakarta EE / Java EE based. We are coding against an API and care less about the actual framework implementation.

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'm using Maven only. In the MicroProfile / Jakarta EE world, you only need a few API dependencies without any plugins required. For example, the pom.xml usually looks like: https://www.adam-bien.com/roller/abien/entry/essential_javaee_7_pom_xml.
The new runtimes like Helidon or Quarkus come with additional plugins. However, these poms are always created by a CLI or an initializer.

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'm structuring backend applications with Java packages only. The packages are named after business or domain and not technical responsibilities and always come with the same structure: boundary, control, entity.
JPMS is more interesting for platforms, CLIs and software which requires pluggability.
In my projects, the ultimate module is the Dockerfile.

In his session, Adam would create the smallest possible Java monolith (actually a microlith) from scratch, discuss the design choices, tradeoffs and patterns. Join Adam on the 25th of June at 10.00 a.m. CEST
Don't forget that each talk will be followed by live Q&A in the Spatial Chat! We do think that this is one of the best platforms for online Q&A! It feels like an offline event! We are sure about that because we have a lot of feedback from amazed attendees and speakers!

Register to attend
Check out our Website

Top comments (1)

Collapse
 
matthewekeller profile image
matthewekeller

I like java because it is so simple at its core. It is easy to learn , highly intuitive, and well organized. I have been exposed to the Nodejs stack recently and barf. Just terrible. I do like classic javascript on the browser where it belongs though.