DEV Community

Cover image for My Journey to Appreciating Java in 2025
Aabhas Sao
Aabhas Sao

Posted on

29 2 1 1

My Journey to Appreciating Java in 2025

I always dreaded Java. I started my journey with JavaScript and was using it for backend with Node.js. I loved simplicity and versatility of javascript to use it to build anything from frontend, backend, ML, to crypto projects. Yet, despite Java's popularity, running on billions of devices from mobile phones to POS systems, I couldn’t bring myself to like it. Let me share my personal journey to liking Java and why my perception changed over time.

The floor is Java. Programmers avoiding stepping on Java


When eyes meet with Java

Remember the time before Android or iOS became popular? The early touch screen phones used to come with games with Java jar files. I have fond memories of playing so many games and they had size of under 1 MB only!

I started learning HTML, CSS, JavaScript to build website and then later learned Node.js. Why switch when you can build backend with JavaScript.

Occasionally, I tried exploring Java but avoided diving deeper. Writing System.out.println("Hello World") just to print a single line felt unnecessarily verbose. On top of that, there was widespread negativity toward Java from YouTube content creators. People were constantly talking about Rust, Go, Ruby on Rails, and Zig, leaving Java to feel like an outdated relic.


We Meet Again

During my first job, our backend application is written in Java. So I had no other option but to learn it.

  • Debugging Frustrations: Now the first pain point for me was the fact that to make any changes I had to compile the class file and replace it in an .ear file and restart Tomcat server, the whole process would take about 5 mins. It was frustrating. In NodeJS I just had to use nodemon to get the changes reflected.
  • Understanding OOP code: Getting used to read OOP (Object Oriented Programming) based code was new to me. It got confusing sometimes, classes extending, implementing and what not.
  • The Perception of Obsolescence: My overall perception was that no one is starting new projects in Java in 2024. The most of the resources I find online are pretty outdated, they might be relevant but in JavaScript, you'll always find the most fresh content out there.

Living with the Pain

Stack trace error

The pain of Debugging

  • If you aren't familiar above is a sample image of how stack trace in Java looks like. Initially it was really scary to search in the log file of 50K lines and seeing a lot of caused by chains. The above image paints a nice picture of how debugging in Java can be sometimes. but with time I realised that the useful message is in the bottom most caused by chain mostly.
  • But sometimes the root cause might be wildly unrelated to the error thrown but this is not something specific to Java, I have faced issues like this javascript as well.

  • I learned patience and to analyse problems deeply before taking any action to avoid the tedious process of compiling class files and replacing them in the ear archives deployed on Tomcat.

Finding Root cause Java


Java has Evolved but has your organisation?

Old Java

One major feature of Java is its excellent backward compatibility. While this ensures stability, it also means that organizations tend to avoid updating older systems. For instance:

  • Using XML-based configurations for Spring Beans.

  • Relying on Enterprise Java Beans (EJBs).

  • Employing Ant for complex build processes.

These older practices can make development unnecessarily complex. Modern tools like Spring Boot and Gradle are far more developer-friendly, yet many companies stick to the old ways. 🥲

Discovering Spring Boot & Lombok: Java has evolved a lot and modern Java helped me resolve some of the frustrating developer experience that I had. When using Spring Boot I no longer have to change class files inside a war file but the changes get reflected quickly as it uses an embedded tomcat server. Using Lombok annotations I no longer have define getter, setters, and a lot of things get shorter.


Final Thoughts

I have just started my journey and learning more about Java, Spring. Please let me know what are your thoughts on Java, whether you haven't started yet, want to or are a veteran.

But regardless, Java you're a pookie don't let anyone tell you, you're boring, old fashioned, tedious. You're reliable, and understanding you takes time but it's worth it 💖

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

Top comments (18)

Collapse
 
leob profile image
leob • Edited

Have used it for many years, mainly because it's just being used a LOT in corporate environments and in big IT systems - Java, they often call "The New COBOL" :-)

Switched from being an "employee" to being a remote freelance web developer years ago, and now it's PHP and Javascript, haven't touched Java for a long time - I think there's very little demand (or opportunity) for remote freelance devs to do Java work, because it tends to be more for "in house" roles in corporate environments.

I believe that recent versions have picked up a lot of modern features (e.g. Functional Programming / FP style constructs a la map/filter/reduce etc) - but I'm not following it anymore, there's no incentive, and I don't really have a reason to.

But there's no denying that Java can be good for your career :-)

P.S. "... despite Java's popularity, running on billions of devices from mobile phones to POS systems ..." - I'm always a bit skeptical about these claims ... yes, it's installed on many computers/devices, but is it also actually used ? I think the last time I ran a "Java Applet" is more than a decade ago ...

Collapse
 
aabhassao profile image
Aabhas Sao

good point. Java is used highly by inhouse teams and those teams use java syntax and features from a decade back. But I have seen some modern startups and OSS projects using Java for backend. Checkout out kestra they are using java and micronaut for backend.

Collapse
 
leob profile image
leob

Right, I checked Kestra and that seems the kind of thing you'd want to use Java for (hadn't heard about Micronaut) ... yeah it's not only in-house and "corporate" where Java is used, but that's where it is used a lot - and also stuff like big financial systems, ERP systems, payment platforms - like I said, "Java is the new COBOL" :)

Collapse
 
charles_roth_8c0df94d211a profile image
Charles Roth

20 years of Java experience, here. Things to consider/learn:

  1. Google Guice for dependency injection. (Springboot: eww. Too much 'magic' IMHO.)
  2. Junit, unit-tests. See my lookfar.caucuscare.com/index.php/2....
  3. A wide variety of templating tools (for web interfaces). (I like Tapestry, but only used sparingly. Dated.)
  4. Read "Uncle Bob". Favorite quote: "If you've opened the debugger, you've already admitted that you've failed."
Collapse
 
aabhassao profile image
Aabhas Sao

@charles_roth_8c0df94d211a, thanks for the really high quality resource for junit. would try out guice for sure sometime.

Collapse
 
luisdanielmesa profile image
Luis Mesa

"Caused by chain" = stacktrace

I would advice against using SpringBoot, but I get why newcomers use it. We all used training wheels when we first started riding bicycles.

Check this: JumperCode

Collapse
 
divyamojas profile image
Divyam Ojas

For those thinking Java is similar to JavaScript because it is "java"Script 🤌🏻

Collapse
 
aabhassao profile image
Aabhas Sao

lol, yeah first time I thought that too. But JavaScript people were inspired by Java, so they named it JavaScript.

Collapse
 
luisdanielmesa profile image
Luis Mesa

...And Oracle owns JavaScript.

Thread Thread
 
aabhassao profile image
Aabhas Sao

ohh didn't knew it. cool fact.

Thread Thread
 
charles_roth_8c0df94d211a profile image
Charles Roth

Um, no, Oracle does NOT own Javascript. They own the trademark in the word -- but that's it. No-one owns the language, if anything the definitive standard is from ECMA, and the Europeans actually call the language ECMAscript.

Oracle DOES own Java, but other implementations of the language, and 99% of the standard Java library, have been declared as reusable/recreatable as "fair use" by the US Supreme Court. So many other organizations (notably Amazon) have their own implementations of Java -- but they stick extremely closely to the standard as defined by Oracle.

Reference: britannica.com/technology/JavaScript

Collapse
 
omak profile image
omak-oorzhak • Edited

Try Kotlin. It has a nicer syntax and has more features thanks to Kotlin Multiplatform.

Collapse
 
charles_roth_8c0df94d211a profile image
Charles Roth

(Liked. But it really IS Java underneath, and runs on the JVM.)

Collapse
 
dhanush9952 profile image
Dhanush

Thank you for the post Appreciating Java
50 billion+ devices run on Java.😄

Collapse
 
aabhassao profile image
Aabhas Sao

thanks @dhanush9952. sure Java has so many real world applications!

Collapse
 
prince_verma_09bc316d7790 profile image
Prince Verma

I love Java. Thats it.

Collapse
 
spopa profile image
spopa

as one who left java some 5-6y ago and would not look forward going back :), there's nothing in this article that should make one appreciate java. Ignoring the quarkus, spring, kotlin palliatives I think the main issue is the OOP itself, modern systems are less "heavy hierarchy of classes designed ahead by great luminaries" and more "dynamic smaller systems that can be upgraded on the go". Java works for the second as well, but seems clunkier

Collapse
 
charles_roth_8c0df94d211a profile image
Charles Roth

Compared to what? Which "modern systems" are you thinking of?

There are certainly plenty of public/open-source Java utility libraries that are "less heavy hierarchy of classes" compared to the original Java standard libraries.

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more