June 1st, 2008

A little general history

In the past, I have (sort of) ferociously attacked Java for being a horribly slow, memory-hogging platform. These attacks were not based on nothing; I can assure you I have done my share of Java programming both as an undergraduate CS major and a graduate SE major, and also in general on my own for various applications. I have written various swing apps, applets and servlets over the course of my Java-programming life, and I’ve also deployed them on my own server. So, I have walked the walk, I just haven’t walked it lately.

My experiences with Java, when I did a lot of Java programming, which was years ago, had formed the basis for many of my prior complaints.

A specific instantiaton of my stupidity

Recently, when web programming became my full-time job, I was in search of a good IDE to work with PHP, and I briefly documented the steps I went through to find one. Eclipse PDT, a Java-based PHP IDE, was first on my list, because it was highly recommended and it runs on Linux (since it’s Java).

My experience with Eclipse PDT, as I documented it, was not good. I immediately jumped to the conclusion that either the Eclipse platform, or the Java platform, or some combination of the two platforms was the culprit, and promptly bashed them both. Dumb and dumber.

The fatal flaw

I run Linux as my primary operating system, and included with Linux is something called the GNU Compiler for Java, or the GCJ. The GCJ itself is not Java, but a reimplementation of it by free-software developers, who not only provide the platform but all of the source code for it as well. Nothing written here today has anything to do with the benefits or drawbacks of free software, but my fatal flaw was that based on my past experiences with Java, I assumed that using the most recent version of the GCJ was exactly similar to using the most recent version of Sun’s Java, which is available for free but (mostly, now) without source code.

Apologies, 1 and 2

Due to certain circumstances, which are largely unimportant, I was encouraged to give Eclipse PDT another try. But this time, I decided to install the latest version of Sun’s Java instead of relying on the GCJ. And man, can I just say, it worked. Eclipse runs more-or-less flawlessly, and without the huge memory footprint I had expected to see when first loading it up.

It was a mistake to bash Java and Eclipse without really giving either a proper shot — albeit somewhat unknowingly. For this, I am sorry. Had my experiences with earlier versions of Java (which really did have speed and memory issues) not contributed to a preconceived notion of what to expect, I might not have assumed that simply trying the newest, authentic version of Java would have no affect on my issues with Eclipse PDT.

To both camps, I apologize. The strides made by the Java community in the past few years to fix Java’s earlier issues have been realized. The fact that Eclipse simply “works” the way it is supposed to, using the latest version of Java, makes me not much more than an asshole for complaining it did not. At least with Java my complaints were just very outdated. With Eclipse, they were flat out wrong.

Conclusion

I suck. But I’m working on it.

Leave a Reply