Contributors

Java

I've downloaded the latest JDK from Sun ever since the first one came out, and each time as I waited for the download I promised myself that this time I'd learn something about Java. But the features kept multiplying, and with two fast, free compilers, one that does C and has a nice IDE and a lot of Windows support, and another that does C and C++ and comes with all the Unix tools I use at work, it was just easier to use them.

And then one day I asked myself why. Java can write once, run anywhere and people I respect say it's cool. Why wasn't I using it?

For one thing, it just wasn't as satisfying. Gcc is a command-line compiler like javac, but gcc gives you a Unix shell while javac gives you all the rich resources of -- DOS? IDEs for Java were strictly aftermarket, and they were expensive. And I didn't read a review of one that I didn't think I'd hate as much as some of the other IDEs I was using.

Another reason was portability. You develop a console app in gcc or g++, and you know it'll run on Windows and just about every variety of Unix. You develop a Windows app in lcc, you know it'll run on every Windows machine. In both cases, you have to take care with the features you use. But as I was reading in the Java developer press, you have to do that with Java too. Write once, run anywhere? I was already doing that.

Then there were the Java applications I use. My C and C++ apps ran fast. Every Java app I use takes approximately forever to bring up its initial screen so I can get to work. And if it does any number crunching or screen I/O, it stops being a tool and becomes a burden. One XML application some colleagues are using takes 30 minutes to bring up its first screen on a 600 MHz PIII with 128 MB. It doesn't run on my machine at all. Or maybe I just didn't wait long enough -- and before you jump to conclusions about my patience, I'm a raytracer. Did I really want to write something people would hate as much as I hated those apps?

Then there's Sun's odd "it's open"/"it's mine" ambivalence about the standards process. There are people who believe that there's nothing more to standardization than business priorities. I can't go along with that. There's also the little matter of right and wrong.

Finally, there's Java on the Web. Not in some far distant future, but real-world applets in real-world web browsers. Think about the emotions that went through your mind the last time you saw this message in your browser's status bar:

Starting Java...

Were they more like "Oh boy!" or "Oh, Christ!"?

Exactly two Java applets have delighted me. Two. One is a GMT clock and the other is the Lake applet. The rest were either a big wait for nothing much, or plain annoyances. Half the time, the ones that promised some coolness didn't work. And don't get me started about Java and VRML. The External Authoring Interface lets you talk back and forth between VRML worlds and web pages. 3D comes out of the lab and becomes useful. Just one problem: it doesn't work. At least not on my machine. Or rather, some days it does, some days it doesn't. I don't know why. That adds up to one word, and not just for Java with VRML: unreliable.

Sorry, Sun. Love your servers and workstations. But five years is long enough to wait for a product to become fast, small, and reliable.

Bob Crispen
Sunday, May 21, 2000

[mail to revbob@crispen.org]