Java

I’ve written before that my feelings for technology are strong and passionate. I regard Apple with a nearly perfect halo of saintly perfection despite all the Chinese workers committing suicide and some of Apple’s darker acts in regards to the iOS App Store, but despite all that they are still as pure as driven snow in my eyes.

Not so with Sun Microsystems’ Java. It’s not that I hate Java in and of itself, actually I appreciate Java for what it has accomplished with the tools available. What I hate is tangential but squarely placed against Java. Here at work we have two really big monolithic database systems. The first is our in-house alumni database, Millennium. The second is SunGard’s Banner Student Information System.

What do these two pieces of software have to do with Java? Well, that’s the core of my agony. The two have to be used at the same time, but one needs Java 1.5.10 and the other 1.6.3. It’s impossible to expect people to understand Java versioning and when they accidentally upgrade their Java installation with 1.6.3 or later for Banner use, their Millennium client goes completely out-of-spec and makes their lives a living hell, mostly with stupid script errors as code written against 1.5.10 scrambles at the cliffs-of-insanity of 1.6.3 or later.

What is our solution? It’s ugly but it works. We split the software by virtualized operating system. Two XP’s running side-by-side, one with Java 1.5.10 the other with Java 1.6.3. It isn’t elegant, and it starts me thinking about why exactly Java is in any of these products to start with. For Banner it’s pretty clear, Banner is written against Oracle and the client software is exceptionally poor, it’s called jInitiator and I feel ill and tremble even when contemplating it. It’s the kind of software that I fantasize about staking to the earth and watch the sun rise as it burns and screams, hissing and spitting giant gobs of ichor everywhere as it slowly burns to dust.

Millennium isn’t as bad, but there is Java still. Why? It could be wholly a W3C compliant application, I mean, that’s where it’s headed, and if you want fancy bits you could always use JavaScript or even AJAX tricks to do the same things that they have Java doing. Thankfully I’ve bullied the authors into promising that by version 9 of the software, that Java will be a sad sorry memory.

So it’s not really that I’m angry at Java, but I am angry at these companies that write in ways that permanently fix a version of Java on a machine and that only invites issues like viruses, security breaches, and these horribly gross incompatibilities and there is nothing I can do to address them other than apply virtualization technology like a cure-all salve. It’s quite like hunting fleas with a BFG. Annoying.

So for those out there who are thinking about using Java to make your software shiny or somehow cute, just skip it. Your customers won’t really appreciate what neat shiny you can bring to the table and the admin tasked with keeping it all together will thank you for one less versioning nightmare to have to deal with. I blame Java because without it, my life would be much easier. One just has to wait for things to get better, at least there is hope.