This is so controversial, I wish I had written it. Jesse Berst, the Editorial Director at ZDNet's AnchorDesk, has written a compelling and controversial (though short) essay that exposes the five myths of Java. You should read the whole thing, but here they are in a nutshell:
Myth: Write once, run everywhere.
Fact: Applets that run fine on Windows 95 may not run at all on the Mac (or vice versa). And may run so slowly on 16-bit Windows, they become unusable.
Myth: Businesses will rewrite their applications in Java.
Fact: They won't.
Myth: People will do everything new in Java.
Fact: Java will never be optimized for everything. Visual Basic, C++ and other languages will continue to thrive.
Myth: Java is secure (i.e., it's more secure than ActiveX)
Fact: Java is more secure than Microsoft's ActiveX. It is also more restrictive. As Java is modified to allow local caching, local storage, and local printing, it will become less secure.
Myth: Java is an open standard.
Fact: Java is less open than Microsoft's ActiveX.
OK, not everyone is going to agree with all of this, but it makes a good read