Why I don’t like Java.

H-JVM-license-plate-Budapest H-JDK-license-plate-Kecskemet

Please, my Hungarian friends, don’t get upset, of course it’s not about you, your cities, or whatever, but I recently discovered you have JVM and JDK license plates and I had to laugh hard.

No, it’s about Java. It’s not about Java from Oracle in particular. It’s not about the Java, SUN used to develop, it’s not about Java the programming language. Actually, I’ll never get used to program Java, it will never fit my working style (Windows, .NET don’t fit as well). Anyway. Of course, having seen zillions of straces/ltraces, core dumps and exceptions from Java, doesn’t help to love Java at all, but… However, at some point in time, you get used to it.

As we all know, out there are companies producing code, written in Java. Out there are companies who buy that software. Why? Because it fits their needs. So far so good. BTW: The same can happen with any other software as well, the problem these days is, that it happens to be Java in many cases – my personal perception at least.

There are good developers out there, producing (mostly) good code. There are bad programmers out there, also producing code. For code where you’ll (probably) never see the source code, you cannot really tell if it’s good code or not without actually using the product. Well… In some cases, you can actually see it – especially if it’s really bad code. For web applications, a short look at a demo site (and it’s HTML/CSS/Javascript) code, will also reveal if it’s good or badly written. However, does the internal systems engineer/administrator/architect get involved in decisions which product the business people buy? Usually, no. Do all these tech people have experience with deployment, development, etc.? No, of course not.

At this point, I’d like to raise awareness:

  • Business people:
    • Do involve the technicians who have to run that application in the end!!
    • Ask the vendor about security; How and under what circumstances do they deploy new versions? How much effort is it?
    • Java app? OK, but it has to run with the Java that comes with the distribution, since this one (should) be safe. If they do not support such deployments: They have to provide the patches promptly after a new Java security update has been released.
  • Techies:
    • Get some basic knowledge about programming and debugging.
    • Even more important: Get used to how to deploy and run these applications!!
  • Developers:
    • I know, you learned programming at school or university or self-study. What they do not teach you (/what you didn’t learn yet): Deploying these applications.
    • Understand that it is – in these times – unacceptable to stick with a particular version of the runtime, application server, …
    • For all of you who now state: I cannot test each new version of the application server, runtime, et cetera. in a timely manner. Please: Get used to continuous integration and test driven development. Regression tests can be automated. Really!

Maybe I’ll post some stories about my experience with “enterprise deployments” at some point in time. For the moment I spare it.


Leave a Reply