I’m a java skeptic. The promise of write once, run everywhere has morphed into write once, suffer everywhere. The whole notion of java applications, given that your code will only perform as well as the virtual machine, meaning your OS vendor, permits, has never really caught fire. Applets turned out to be a bust: CGI and Flash can do much the same thing in a more platform-agnostic way. It has always struck me as a solution in search of a problem.
One use of java that’s hard to beat is java server pages, or dynamically generated HTML using java to provide the logic. I saw a great example today. The Seattle Public Library has embraced the web and supports a variety of services via the Internet, from querying your account to ordering and renewing books. But the choices up to now have been to use an applet or telnet. Telnet works all the time. The applet was always chancy and never very fast. Well, the new interface is jsp-based and it’s so much nicer. Fast, better designed, just more useful. And the fact that it uses jsp shouldn’t matter: it just works. And I would be willing to bet ongoing support of HTML files with embedded java will be a lot easier than an applet ever was.