My Journey to Appreciating Java in 2025
Aabhas Sao

Aabhas Sao @aabhassao

About: I procrastinate more than sleeping , jk recruiters hire me :)

Location:
India
Joined:
Jan 3, 2020

My Journey to Appreciating Java in 2025

Publish Date: Feb 9
33 20

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 💖

Comments 20 total

  • Divyam Ojas
    Divyam OjasFeb 9, 2025

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

    • Aabhas Sao
      Aabhas SaoFeb 9, 2025

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

      • Luis Mesa
        Luis MesaFeb 14, 2025

        ...And Oracle owns JavaScript.

        • Aabhas Sao
          Aabhas SaoFeb 14, 2025

          ohh didn't knew it. cool fact.

          • Charles Roth
            Charles RothFeb 23, 2025

            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

            • Luis Mesa
              Luis MesaMar 14, 2025

              I love your take on testing. That's my kind of jam.

              I do everything with JUnit, surefire, failsafe, docker and possibly selenium: youtu.be/HiriKDuk2J0?si=qtzSVX7yhr...

              Oracle does not set the standard for Java (called Java Language Specification, JLS), it's governed by the Java Community Process, JCP.

              I'm European, we still call it Javascript, we're not from a different planet.

              The interface is fair use, this is why Oracle open-sourced the JDK, and also because they now have GraalVM.

              Video of me installing multiple JDKs: youtu.be/-3eiWTrdD7g?si=dzIbQKldmT...

              Video of me using both a (non Oracle) JDK and GraalVM: youtu.be/hfY5HzC-A98?si=dnxauQF66h...

              Disclaimer: I work for Oracle but I created that channel way before starting to work there. They have no input or control on what I post, since that's illegal in European law. I have also worked for Novell, IBM, Amazon, ING and SwissRe. They also don't have a say about what I post.

  • Luis Mesa
    Luis MesaFeb 14, 2025

    "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

  • Prince Verma
    Prince VermaFeb 16, 2025

    I love Java. Thats it.

  • Dhanush
    DhanushFeb 17, 2025

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

  • Charles Roth
    Charles RothFeb 18, 2025

    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."
  • omak-oorzhak
    omak-oorzhakFeb 19, 2025

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

    • Charles Roth
      Charles RothFeb 23, 2025

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

  • leob
    leobFeb 19, 2025

    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 ...

    • Aabhas Sao
      Aabhas SaoFeb 22, 2025

      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.

      • leob
        leobFeb 22, 2025

        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" :)

  • spopa
    spopaFeb 22, 2025

    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

    • Charles Roth
      Charles RothFeb 23, 2025

      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.

  • ganesh kumar
    ganesh kumarMay 12, 2025

    Loved your Java journey—relatable and inspiring! For anyone starting out, this Java Course in Coimbatore is a great way to build strong fundamentals and land real-world opportunities.

    Visit - appincoimbatore.com/java-course-in...

Add comment