In our new Java Monthly edition, we’d like to introduce you Adam Bien. He was kind enough to share his experience on 11 more Java-related questions.
Adam Bien started with Java 1.0 in 1995 and has been an independent consultant since 1997. Adam still enjoys developing software, especially with the new Java features and boring Java SE / MicroProfile / Jakarta EE APIs, mostly on serverless Quarkus, public clouds, and on-premises.
Dreamix: “I’ve been working with Java since 1995 …and still really enjoying it.” – a quote we found in your blog. Is there anything that drives your passion about Java in particular?
Adam Bien: Java is a simple language with only a little magic involved. The ecosystem is vast, but you can always pick and rely on a standard implementation. Java language is also very stable. New language features are carefully added without breaking the compatibility. The high performance combined with simplicity makes Java perfectly suitable for leisure and long-term strategic enterprise projects.
My initial plan was to learn Java, then move on to other languages. It didn’t work out. There are too many exciting projects out there.
Dreamix: You have been part of the Java world since its very beginning. What key upgrades made it so successful throughout the years?
Adam Bien: Java 8 language features like, e.g., Lambdas and Streams had a significant impact. At the same, the JVM’s efficiency and performance were constantly improved. Recently, Java was identified as one of the “greenest” languages, making it interesting for serverless and cloud computing. GraalVM’s polyglot and native compilation features are also an important addition to the ecosystem.
Dreamix: Jakarta EE 10 was released back in September 2022. Do you find any updates that make it stand out compared to the previous versions? Are there any features you are excited about?
Adam Bien: I consider Jakarta EE part of necessary plumbing – comparable to a boring operating system like Linux without the UI. It just works, is stable, and you can rely on it. Ten years ago, I delivered a talk, “JavaEE 6 Session: Future Is Now, But Is Not Evenly Distributed Yet” I repeated the conference talk last year and deployed the application with minor modifications …as AWS Lambda. The longevity is particularly exciting to my clients. They are less excited about frequent migration projects.
Dreamix: In what case would you recommend to your clients Quarkus over Spring Boot?
Adam Bien: Quarkus is mainly Java EE and MicroProfile compatible – you can migrate “old” Java EE 6 projects to Quarkus to run them cost-effectively in the clouds. Startup time and sometimes memory consumption do matter. In my current projects, we are running Quarkus on JVM without GraalVM.
However: Helidon and Micronaut are the real contenders.
Dreamix: How would you explain what a “cloud-native” application is to a 5-year old?
Adam Bien: Cloud-native: outsource the plumbing to the cloud and remove as many dependencies, “optional” frameworks, and source code as possible. Focus on the task and not the plumbing.
Dreamix: In your opinion, what is the greatest benefit of using Payara Micro, compared to its competitors?
Adam Bien: The biggest competitor is the Payara Server, which I prefer. Payara Micro is easier to package and run on bare metal instances. The killer use case for Payara Micro is the use as a “worker node” in Payara Cloud: https://www.payara.fish/products/payara-cloud.
Dreamix: What would you advise a developer that has just started learning Java? Is there a certain path they should go down to, or a set of “must-know” technologies that are trending on the current market?
Adam Bien: Pick a hobby project and go with it. Currently trending are Green IT and serverless Java. The Java community now recognizes that you can efficiently run Java on serverless infrastructure and cut costs. Java is faster and so cheaper than “scripting” languages.
Having a good feeling for distributed computing, consistency, performance, and scalability would be best.
Dreamix: You often seem to use “bloat” in your blog and videos. In your practice, do you often have to work on optimizing “overloaded” applications? Why is this happening?
Adam Bien: Less often in recent years. Java projects became leaner and more pragmatic.
Developers from early Java days were promoted to architects and project managers. They insisted on using outdated practices without having concrete requirements. This lead to unnecessary abstractions and bloat.
Dreamix: How do you update yourself about the latest trends in Java?
Adam Bien: Most trends do not apply to my projects – and I ignore them. There are already 110 episodes of monthly Q & A live streaming show (https://airhacks.tv) recorded. In the “time-machine” section, we look at 100 episodes ago. Interestingly – most questions regarding frameworks and libraries from back then, like: “Why you are still doing Java / Java EE and not…” are no more relevant. The shiny framework or concept from back then is often no more maintained or completely forgotten.
Java / Java EE / MicroProfile / Jakarta EE is backward compatible and openly developed. The addition of new features is less surprising. I only have to learn incrementally.
Dreamix: Can you recommend a favorite book about programming?
Adam Bien: If I find a new book, I buy it. The book stack grows – and so increases the pressure to read it. There are no bad books – you can always learn something new. It is also fun to re-read the old Java 1.0 books to see how the technology was “sold” back then.
Dreamix: What about a favorite book in general?
Adam Bien: Maybe the most impactful book. Snow Crash by Neal Stephenson had the most significant impact on the entire software ecosystem. Some companies even changed their names after reading it.
Is there anything else you would like to ask Adam Bien? 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!