By the time the Javavaders applet has loaded into my browser, I've had time to count every one of the alien attackers arrayed against me in this low-resolution "Space Invaders" clone. The game's finally about to begin -- but where am I? As the aliens begin to advance, I panic and hit the keyboard. My spaceship (or gun or whatever it is) appears on screen; now I can play. But the delay between keystroke and response is maddening, and you can't really aim at all. Fifteen seconds later, my screen freezes. That's Java -- time to reboot.
the hype for Java -- "it's cool and hot!" -- is omnipresent. A year ago, at a San Francisco trade show awash in dry-ice smoke and overamplified "Star Wars" music, Sun Microsystems launched the Java juggernaut -- promising that its new cross-platform programming language would change the face of the Web, bring "true interactivity" to Web sites and generally usher in the millennium.
Since then, every major computer company has promised to incorporate Java into their products and systems (although Microsoft's enthusiasm remains notably half-hearted). Fortunes have been won and lost, alliances made and broken. Thousands of Java books have been sold -- and a few have even been read. Career prospects for the Java-savvy have soared.
Still, wander the Web today with your Java-capable browser and it's hard to see what's changed. A quick tour of the state of the Java art reveals a paucity of imagination and innovation. There's little to show from Year One of the Java revolution beyond a few snazzy navigation aids and a little bit of animation. Your reaction may well be a peevish, "My browser went all the way to Java-land and all I got was this stupid scrolling line of type!"
The NYU Stern School's Edgar Ticker uses Java to create a moving banner on your page providing up-to-the-minute reports on new stock offerings. It moves awfully slowly, though, and its little "Stop" button doesn't seem to work. You're supposed to be able to click on any offering's name to get further info, but that feature doesn't seem to be "enabled" yet. At least the ticker doesn't crash my browser.
It's easy to get lost discussing Java's technical genesis. All you really need to know is that Java's a full-fledged programming language that's at home on the Web. As such, it should be able to do just about anything. Right now most of the applets -- the small programs that make stuff happen inside your browser window -- are games, animations or Java programming helpers. But you could someday work with a Java word processor or spreadsheet, use a Java program for your email, or keep a calendar in Java. Sun's HotJava is a Web browser that's written in Java itself.
Java programs are designed to be relatively small, so they don't take forever to get to you over the Net. And Java's architecture means that programmers don't have to write different versions of their code for Windows, Mac and Unix computers; one program fits all. This is cool. And hot.
In the Java visionary's scenario, it will cease to matter whose computer you use. Your browser will take over many of the operating system's functions (like the Windows Program Manager or the Mac Finder), and you'll do most of your work with little Java applets you can download and upgrade as needed. The applets could even upgrade themselves.
Still, if you think Windows or System 7.5 crash too often, wait till Java and Netscape start dancing their little system-freeze tango on your desktop.
I have now tried out 50 of the Java applets listed on the "What's New" and "What's Cool" pages of Gamelan, EarthWeb's Java directory. 34 applets have crashed my Mac. Okay, many of these programs are just the homework exercises of computer-science students. (See the Shoot Mike Game: "The object of the game is to repeatedly shoot Mike in the face.") And, to be sure, Netscape's Java-capable Mac browser is a pre-release "beta" version. Then again, the "final release" version of the Netscape 2.0 browser crashes nearly as often, so you can't blame all the bugs on beta.
So what is it exactly that Java is going to change? Skeptics argue that, like so many previous technologies, Java is a solution in search of a problem -- that the reason there aren't any really valuable Java applications yet is that there's no true need for the capabilities Java offers. That's almost certainly a short-sighted view. Since Java is "object-oriented" -- meaning that chunks of code become reusable modules -- programmers can build on one another's work, and there's a natural evolution underway from simple building blocks to more elaborate projects.
But right now, Java is all hyped up with no place to go and little to do. For one thing, it's still not really fast enough; if you're connected to the Net by modem, you'll wait for most applets.
When you point a Java-smart browser to a Web page that contains an applet, you'll probably see a message telling you that the applet's loading, and a gray square on the page will gradually fill in as the data arrives. This creates a bit of a problem for
< href="http://www.suck.com">sites that are using Java as a navigation tool: the information you want to receive first, about what's on the site and where you are in relation to it, actually arrives on your screen last.
Animation is a function that's closely associated with Java in the public mind. Early this year, animations began to appear all over the Web -- mostly in the form of rotating logos and flashing ads -- and a lot of people thought they were seeing Java in action. In fact, most of these manifestations of Web-page mobility used a much simpler process known as GIF animation, which you can create, flip-book style, without needing to know how to program (it's what we used for Keith Knight's crashing coffee-cup above). If Java were only good for animation, there wouldn't be much point to it, since there are so many other ways to animate a Web page (like Macromedia's Shockwave).
Planetary Exterminator, a Java rewrite of the classic Lunar Lander game, sounds like it might be fun. But once it loads, its graphical elements -- a bouncing eight-ball, some little robotic insects and what look like forests of toilets -- have a mind of their own and barely seem to respond to the controls. So I try Star Wars With the Gipper instead. At last, a game that works! But it's just a little photo of Reagan surrounded by dancing hammer-and-sickle signs. Click your mouse on one and red beams from Ronnie's eyes will zap it to kingdom come. The game gets dull fast, but I spend a while trying to figure out whether it's meant as a tribute to, or a satire of, our forgetful ex-President.
Today, Java delivers on its promise of interactivity chiefly with mediocre games and buggy chat applications. (HotWired is rumored to be unveiling one soon, and EarthWeb is beta-testing one now, but good luck getting through.) Down the road, lots of businesses and banks are hoping to use Java for electronic commerce. Trouble is, Java's security remains a matter of heated debate.
It's possible, it seems, to make Java pretty safe -- to protect yourself from Java-borne viruses and "hostile applets." As the Net community keeps hammering away at Java to find its every flaw, expect it to become fairly secure. But even once most of the loopholes are fixed, there will always be a tradeoff between Java's safety and its power: the more stuff you want it to do, the more security you'll have to sacrifice. That makes it no different from most other technologies -- but somewhat less of a safe bet than originally promised by Sun.
One reason for the scarcity of impressive Java applets is that, right now, the only way to work with Java is down at the level of the code itself. Non-programmers need not apply. It's as if graphic designers, instead of working with an easy-to-learn tool like Photoshop, had to write lines of code before they could touch up a photo.
As Java tools for non-programmers proliferate -- and they will -- expect to see the creativity of a much larger (and more diverse) group of people unleashed on Java. Such tools should also allay the justified fear that Java, by requiring demanding programming skills, hastens the end of the anyone-can-publish free-for-all that makes today's Web so vital. At the other end of the spectrum, serious code-slingers will work on combining Java with VRML, the new standard for three-dimensional world-building on the Web, to create networked cyberspaces inhabited by avatars that can do more than just say "hi."
I have fond memories of learning Basic -- the Java of its day, about 20 years ago -- by writing program routines for "The Game of Life." "Life" is really just a set of mathematical rules for random little organisms to grow and die on a graph-paper grid over a span of time. So I wasn't surprised to see more than a few "Life" programs turn up in Gamelan's Java directory. Alas, the one I tried out drew a grid on my screen and then stopped. No signs of life.
Talk to analysts today and they'll tell you that Java's biggest impact won't be in making Web sites cooler or more animated or more interactive. It will be in the booming "intranet" market, where big companies are setting up closed in-house networks based on Internet technology, that Java really comes into its own, allowing programmers to write all sorts of custom routines for corporate communications, project management and the like. It also could transform the jobs of "MIS" people, the computer-network managers who could use Java to simplify maintaining and upgrading the software everyone at their companies uses.
There's nothing wrong with that -- and if it gives Microsoft some competition in the business world, more power to it. But it's strangely at odds with Java's carefully promoted aura of hipness. How did a programming language that's going to be used for mundane work like inventory and software management come to be considered so cool?
It can only be the name. If Sun had called it Omnix or WebC or Bytecode Pro, we might never have heard of it. But Java? Java means you can use a cool coffee-cup logo and give products names like Roaster and Kona and Joe. Java means you can make references to Indonesia. Java means you can pretend you're doing something more romantic than writing code.