Java vs Flash then and now:
Then:
- Flash had a single-click installer that took 2 minutes to download and run. Java had an installer that took 10 minutes to download and run.
- Flash applications loaded in less than a second. Java applets took 10 seconds.
- Flash applications tended to be self-contained and would "just work". Java applets tend to refer to external resources. Broken links were frequent and the applet engine was plagued by stability problems that could sometimes take down the entire browser.
- Flash adoption was at all-time high because it shipped with Windows. Java did not.
Now:
- Sun rolled out a single-click installer called Java Kernel that takes 2 minutes to download and run.
- Java6 update 12 loads applets in under a second.
- Java applets now run in a separate process than the browser and the engine has been rewritten from the ground up. Stability issues are a thing of the past. Unfortunately, the web is still full of old applets containing broken links.
- Java ships standard with most new computers. Java adoption rates vary from 70% - 90% depending on who you talk to. Feel free to measure your own website.
The one big difference that remains is that Flash has better artist-oriented tools than Java does. That being said, there is a huge range of software that you can write easier and more efficiently in Java than in Flash. Java is a far more mature and scalable platform. You will see many people using Flash for ad banners, but far more people using Java for full-fledged applications or games. For example, compare 3D rendering support in Java versus Flash.