Home » Software Development » Hate Java? You’re fighting the wrong battle.

About Jonathan Fisher

Hate Java? You’re fighting the wrong battle.

One of the most interesting trends I’ve seen lately is the unpopularity of Java around blogs, DZone and others. It seems some people are even offended, some even on a personal level, by suggesting the Java is superior in any way to their favorite web 2.0 language.

Java has been widely successful for a number of reasons:

  • It’s widely accepted in the established companies.
  • It’s one of the fastest languages.
  • It’s one of the most secure languages.
  • Synchronization primitives are built into the language.
  • It’s platform independent.
  • Hotspot is open source.
  • Thousands of vendors exist for a multitude of Java products.
  • Thousands of open source libraries exist for Java.
  • Community governance via that JCP (pre-Oracle).

This is quite a resume for any language, and it shows, as Java has enjoyed a long streak as being one of the most popular languages around.
So, why suddenly, in late 2010 and 2011, is Java suddenly the hated demon it is?

  1. It’s popular to hate Java.
  2. C-like syntax is no longer popular.
  3. Hate for Oracle is being leveraged to promote individual interests.
  4. People have been exposed to really bad code, that’s been written in Java.
  5. … insert next hundred reasons here.

Java, the actual language and API, does have quite a few real problems… too many to list here (a mix of native and object types, an abundance of abandoned APIs, inconsistent use of checked exceptions). But I’m offering an olive branch… Lets discuss the real problem and not throw the baby out with the bath water.

So what is the real problem in the this industry? Java, with its faults, has completely conquered web application programming. On the sidelines, charging hard, new languages are being invented at a rate that is mind-blowing, to also conquer web application programming. The two are pitted together, and we’re left with what looks a bunch of preppy mall-kids battling for street territory by break dancing. And while everyone is bickering around whether PHP or Rails 3.1 runs faster and can serve more simultaneous requests, there lurks a silent elephant in the room, which is laughing quietly as we duke it out in childish arguments over syntax and runtimes.

Tell me, what do the following have in common?

  • Paying with a credit card.
  • Going to the emergency room.
  • Adjusting your 401k.
  • Using your insurance card at the dentist.
  • Shopping around for the best car insurance.
  • A BNSF train pulling a Union Pacific coal car.
  • Transferring money between banks.
  • Filling a prescription.

All the above industries are billion dollar players in our economy. All of the above industries write new COBOL and mainframe assembler programs. I’m not making this up, I work in the last industry, and I’ve interviewed and interned in the others.

For god sakes people, COBOL, invented in 1959, is still being written today, for real! We’re not talking maintaining a few lines here and there, we’re talking thousands of new lines, every day, to implement new functionality and new requirements. These industries haven’t even caught word the breeze has shifted to the cloud. These industries are essential; they form the building blocks of our economy. Despite this, they do not innovate and they carry massive expenses with their legacy technology. The costs of running business are enormous, and a good percentage of those are IT costs.

How expensive? Lets talk about mainframe licensing, for instance. Lets say you buy the Enterprise version of MongoDB and put in on a box. You then proceed to peg out the CPU doing transaction after transaction to the database… The next week, you go on vacation, and leave MongoDB running without doing a thing. How much did MongoDB cost in both weeks? The same.

Mainframes software is licensed much different. Lets say you buy your mainframe for a couple million and buy a database product for it. You then spend all week pegging the CPU(s) with database requests. You check your mail, and you now have a million dollar bill from the database vendor. Wait, I bought the hardware, why am I paying another bill? The software on a mainframe is often billed by usage, or how many CPU cycles you spend using it. If you spend 2,000,000 cpu cycles running the database, you will end up owing the vendor $2mil. Bizzare? Absolutely!

These invisible industries you utilize every day are full of bloat, legacy systems, and high costs. Java set out to conquer many fronts, and while it thoroughly took over the web application arena, it fizzled out in centralized computing. These industries are ripe for reducing costs and becoming more efficient, but honestly, we’re embarrassing ourselves. These industries stick with their legacy systems because they don’t think Ruby, Python, Scala, Lua, PHP, Java could possibly handle the ‘load’, scalability, or uptime requirements that their legacy systems provide. This is so far from the truth, but again, there has been 0 innovation in the arenas in the last 15 years, despite the progress of web technology making galaxy-sized leaps.

So next week someone will invent another DSL that makes Twitter easier to use, but your bank will be writing new COBOL to more efficiently transfer funds to another Bank. We’re embarrassing ourselves with our petty arguments. There is an entire economy that needs to see the benefits of distributed computing, but if the friendly fire continues, we’ll all lose. Lest stop these ridiculous arguments, pass the torch peacefully, and conquer some of these behemoths!

Reference: Hate Java? You’re fighting the wrong battle. from our JCG partner at The Code Mechanic blog.

Related Articles :

Do you want to know how to develop your skillset to become a Java Rockstar?

Subscribe to our newsletter to start Rocking right now!

To get you started we give you our best selling eBooks for FREE!

1. JPA Mini Book

2. JVM Troubleshooting Guide

3. JUnit Tutorial for Unit Testing

4. Java Annotations Tutorial

5. Java Interview Questions

6. Spring Interview Questions

7. Android UI Design

and many more ....


  1. Java the language is a hopeless mess of bloat and straightjackets.

    It will never anything else.

    That is why Scala, Clojure and JRuby are so important to keep Java the platform from being just a platform for legacy code. Of course your average Java API monkey won’t be to look outside the box to learn these amazing languages.

  2. don’t stick C in this. C is great, java is horrible, it has to die.

    • But seriously…WHY WHY WHY bring C into this? I mean I can see why someone might one to put Java and C-O in a pit fight to death…Java and C is like putting two dogs in a cage to see which one smell the other one’s balls first.

  3. No, Rails is not bad for scalability. This is a myth. Twitter still uses it, github uses it, Diaspora uses it. Refactoring in Rails is not that difficult with the right tools. Refactoring is a matter of tools, not language.

  4. I think you’re confusing IDEs and programming languages.

  5. Only reason why someone would hate Java in general is because it’s too main stream. No, really.

  6. My very first encounter with java was interesting. I enjoyed writing it
    at first, until I realized I had to make multiple modules.. just to do
    one thing.. and it was extremely verbose. Although, this was rather
    minor. I gave it the benefit of the doubt and continued. Then I took a
    job where the systems admin, who was hardcore into java, was the biggest
    douche bag I’ve ever had the misfortune to known. This one man,
    intelligent, but by far the most pessimistic, egotistical, idealist jack
    wagon – broke my spirit in ever wanting to use and code in java. He
    specifically told me, myself being a junior, that I will never learn to
    code well like him. I will never be able to live up to him in his ways
    of java and that my place is below him. This almost n fact wanted to
    make me quit coding all together and I’m still bordering it to this day.
    If you want to know why people hate java so much, you should look at
    the community. Most new developers are straying away from it, because of
    exactly this. refuse to work with people like this. Although I may not
    have liked how long it took to write a program, at the very least I
    would adapt to it – but it’s hard to adapt as a junior – when people are
    like this. If this was supposed to be reverse psychology, it definitely
    didn’t work. In the end, I absolutely hate and despise java. The
    community has ruined it for me completely in ever wanting to even try
    and learn it. That’s my two cents. Good day to you.

  7. I think Java as a language is not that bad. The problem -specially with web applications- is the plethora of frameworks you have to stand up before you do anything. It’s not so much programming, environment configuration that programmers spend time on and loose heart with.

  8. Java has Unsigned Integer and Signed Byte? Nope. C does. Java is a DEAD language to me and I’ve banned it from my workplace and forced my employees to shift their java knowledge to C#/C/C++.

    Java need to die, there is no argument. It’s a langauge that pile the works on the programmer rather than itself therefore costing everyone time, money, and morale.

  9. You make a lovely point but I’m not a programmer. I don’t care how good or competent the code is. I am an end user and Tier 1 support. As a user I detest the frequent updates and the pre-selected “Do you want the Ask toolbar?” and “Do you want Ask to be your default search engine?”

    When a customer’s software breaks because they loaded legacy software AFTER current Java updates I have to try to find an old version-specific JRE, get them to close everything and uninstall Java, blah blah blah.

    Or I’ll be in front of a customer’s PC and the top 1.5 inches of their browser is cluttered with Yahoo!, Ask, Google, and Bing toolbars. “Do you ever use any of these?” “No, I don’t know how they got there or how to get rid of them.”

    So why do I hate Java? Because of its unabashed abuse of a captive user base.

    • Jeff,

      You know that there are free Oracle OTN downloads for both the JDK and JRE that don’t include any of that ASK toolbar bullshit right? Apparently your IT group doesn’t?

  10. “It’s a langauge that pile the works on the programmer rather than itself therefore costing everyone time, money, and morale.”

    Yet C/C++ does this in spades and certainly much more than Java does. Good luck with that.

  11. lol at those who say java will die. just look at how much java is involved in everything. from android to web to desktop to every thing. and its growing more and more everyday.

  12. Java is powerfull as nitroglicerin in correct hands.Ofcourse it will tear you apart if you dont know what you doing.

  13. I used to program mostly in c++ and seriously I hope java will die !!! Not because i prefer c++ or it is popular to hate Java , simply because it is the worst language ever made in Software development history.Unfortunately i give it a try just to get more into Android programming… So now i hate it even more !! Stupid complicated , non standard and slow. So here is some reason why i hate Java (and Android)

    – They forcing you to code in Java. (well , there’s an option to use Native code from java trough JNI , but that’s so stupid and complicated , that sometimes it makes you cry)

    – You have to define a class just to write a helloWorld example.

    – Hard to learn after c++.The syntax doesn’t make any sense.

    – Android and Eclipse made me hate Java even more.

    – Seriously , i’m tired of people who say “Java has automatic memory management what makes it better than other languages” That’s actually a typical behavior in these days…one monkey said that once and all the brainwashed sheep just keep repeating on and on…For God’s Sake whats wrong with new and delete ? why people think that’s complicated ? Actually it’s lot lot easier for couple of reasons. you have more control over your code.You can decide when to free the memory.You can decide how to free the memory.And if you prefer automatic memory management there’s hundred billions of solution in c++ for that. Or you can even write your own smart pointer/reference counting system easily. So all in all : I don’t see any privileges using Java because of memory management.

    So for me Java is dead already… i stopped developing Android apps until they fix this c++/java mixing nonsense .Maybe someday the developers will realize their mistake and give us a solution to access Android SDK completely from native side…

    • So, you hate the way that Java is used, not Java.

      Even the people that say ‘I hate Java’ are really hating the way that it is used, not the Language.

      But Java is fast, helps to avoid the memory leaks that cost a lot of money to the Enterprises, is portable, is more productive and helps to reduce costs.

      The problema with Java is that a lot of people say that they know Java, but its false. The know a little of Java and think that they just know all about Java.
      In fact you need a lot of time to be really good in Java, for knowing its API and how to build good code.

      Maybe you wouldn’t hate Java if you dedicate your time to know it well, instead of losing it hating nosense.

  14. I started learning Java with an enthusiasm years ago but sometime later realized it has no future. The reason is simple. It is an extremely complicated language laden with unnecessary verbosity and terminology that put burden on the programmer. And the use of new terms (e.g., container, contentpane, bla bla) and formal vocabulary almost combinatorially explodes as you explore it further. In an effort to systematize things Java people have created a behemoth that is continuously growing grotesque and irregular.

    Why not use C and other languages which are simple, elegant, fast, and come up with fewer constructs and concepts that we can use to engineer any software product.

Leave a Reply

Your email address will not be published. Required fields are marked *


+ eight = 13

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Do you want to know how to develop your skillset and become a ...

Subscribe to our newsletter to start Rocking right now!

To get you started we give you our best selling eBooks for FREE!
Get ready to Rock!
To download the books, please verify your email address by following the instructions found on the email we just sent you.