082025
×40
WORLD
1-1

THE BEGINNING OF THE END FOR JAVA

5 MIN

When I recently graduated from college, I had a very simple goal. I wanted to do Java development. I fell in love first with how easy it was to build complex layouts for desktop and applets. I liked the language compared to other languages I had previous exposure with such as PHP, C, C++, etc. Although not perfect, I liked the language even more when Generics were introduced on version 5. And this love story continued with what was called J2EE which later changed to Java EE. The world of software Java standards was fascinating. A group of big different companies talking and deciding on an API was fantastic. The ability to choose between different vendors offering different implementations of the same API was something I considered awesome back in the day. I particularly liked Persistance, EJBs, and JSFs. In a way, I think JSF was ahead of their time; today there is some resemblance of how component-based frameworks work for the web but that is another story.

Going back to Java, I remember that despite the love I had for the platform, developing using Java EE was not easy. The need for fat bloated app servers slowed down everything. Out of the common standards, Persistence was probably the easiest to start with. The rest were not that developer friendly IMHO. And I already said that I liked them a lot. Then Spring made their appereance in my life to make everything easier. The competition between the Standards way (Java EE) and the Spring way benefit the ecosystem. Spring brought that simplicity for the developer that was badly needed. Their IoC was easy to use and I really like the concept of convention-over-configuration. So I didn’t mind the lack of innovation in Java the platform because somehow Spring was doing a lot of that job. Their point-of-view on Spring Batch, Spring Integration, Spring Data, etc. was very refreshing for me in moments where doing Java EE was still not developer friendly.

Those were very good times. Lots of learning. However, thinking about all that time, Java was rock-solid but it was weird for me seeing what I used to call the “competition” (.NET, Ruby, Python) do things simpler for their developers. And yes, I used to be a hardcore Java developer who disliked .NET, PHP, and pretty much almost anything that was not Java.

Then, the impossible happened. JavaScript got in my way. I mean, JavaScript had always been but I could feel there was something special happening when I first learned Knockout and then AngularJS. NodeJS came to blow my mind. I realized that these big fat Java app servers that took forever to start were not needed. A NodeJS server took milliseconds and I could do pretty much the same things. JavaScript started to evolve as a language and ES6 was proof of that. And what can I say about the tooling. The tooling was not as feature-rich as full-blown Java IDEs such as Eclipse and IntelliJ but they were fast and easy to customize, they got the job done. But this post is not about JavaScript so let me go back to Java again.

Suddenly, I totally forgot about Java, I cheated on Java, I had no interest on staying with a platform that I considered stagnant compared to how vibrant JavaScript was (and still is). NodeJS was freaking awesome. React rocked my world later. And Java still looked the same to me from the distance. Not a single part of my brain wanted to go back althugh I did care about Java out of nostalgia, and so the story continues with me focusing a lot on JavaScript and cloud technologies. In addition to that, my position as Manager put me closer to other technolgies such as .NET, among others, that opened up my mind a lot to understand the beauty of every platform that was not Java. Languages, Tooling, etc. Pros and cons in everything. I became more neutral despite now having feelings for the JavaScript ecosystem

To wrap up the story, I recently found out that Oracle changed the commercial licensing of Java. They are now charging a monthly subscription based on number of employees of the company. I couldn’t believe it when I read the articles. I honestly found it ridiculous. My first reaction was Oracle is shooting their own feet. My point of view on this, based on my experience in the technology consulting space is that companies will find their way out. I don’t know if Oracle realize but .NET and NodeJS are better that ever. I don’t know if they realize that the market has been a little unstable after the pandemic, and companies are trying to save on unnecessary costs. This will be no different and I don’t think Java is bringing anything special to the table today. Yes, it is rock-solid, there are a zillion systems relying on Java which is evidence of how strong the platform is, the thing is everybody knows that already, and that does not mean organizations will be willing to pay on a per-employee basis just because someone at Oracle thought that was a good/fair pricing model. I’m no wizard but I hereby predict that this is the beginning of the end for Java unless something changes. Otherwise companies will start creating new software using other platforms and throughout the years, Java’s market share will start coming down and other languages/platform will go up. I’m sorry for the community and the technology/tools around Java, this is not their fault but pretty sure they will adapt as well, maybe moving onto something else.