Why Java Will Drive Your Visitors Away.
It's yet another plugin that users hate, and Java has an even worse reputation than most. Why? There are just so many reasons.
Microsoft and Sun.
Java is an open standard, and it's one that Microsoft originally embraced. They made their own Microsoft JVM (Java Virtual Machine) part of Internet Explorer. This led to the rapid growth of Java on the web.
Sun, Java's creator, then decided to sue Microsoft, for being anti-competitive in bundling the Microsoft JVM with the world's most popular web browser. This was a bad move – Sun wanted Microsoft to bundle its JVM instead, but it actually led to Microsoft simply removing all Java support from Internet Explorer, and forcing users to go and download Sun's (from www.java.com) if they wanted to see Java content.
That leaves us in the situation we're in today, where users can be divided into three groups:
Users with old versions of Internet Explorer. They have the Microsoft JVM, which is wildly incompatible with Sun's.
Users with new versions of Internet Explorer but no JVM. They don't have a JVM, meaning that you'll have to get them to download Sun's to see Java content – and Sun's JVM is a big download.
Users with Sun's JVM. They're not only the smallest group, but they're also using a JVM that is incompatible with Microsoft's.
This leads to a situation where you can either code for the smallest group of users (who have a supported plugin), or the next largest one (who have an unsupported one), or try to force the largest group (who have no plugin) to get one. This is obviously an extremely bad situation to find yourself in.
The Speed Problem.
Java's problems, though, don't end there. Even assuming that your user has one JVM or the other, they still won't want to use Java content. The big reason for this is that Java is very, very slow.
How slow? It's slow to the point where going to any page that has Java on it will cause most browsers to freeze up for about 30 seconds or so, appearing to have crashed completely. Users are unlikely to be patient enough to wait for the Java to load, instead press control, alt and delete to get out of there.
Java's adherents mostly refuse to acknowledge the speed problem, but it's bad enough that downloadable desktop programs written in Java have become a complete joke – anything useful written in Java will be pretty promptly re-written in someone else to make a more responsive and usable version. Java programs are simply impractical thanks to their speed problems, and no matter how fast computers get it doesn't seem to get any better.
The Looks Problem.
The next problem is the way Java tends to look. It uses non-standard buttons, not to mention rather simple and overly programmatical ways of producing graphics. To put it less kindly, content produced with Java tends to be ugly.
If you try producing the same application in Java and in Flash, there's just no comparison. The Flash version might be a little harder to code, but it will work in so many more browsers, load much faster, and look better when it does. You would be very silly at this point to use Java instead of Flash, and there are very few things that Java applets can do but Flash can't.
Java on the Server.
At this point, Java is pretty much dead on the desktop, or in the web browser. For this reason, if you're going to write programs in Java, you should keep them where they belong and work best – on the server. Java on the server is growing all the time, and is a good alternative to many other ways of doing things, providing your server is powerful enough for it. Sun knows this, and is re-focusing its Java efforts at server installations, as an alternative to Microsoft's .Net. Let's leave client-side Java to rest in peace.