Back in 1996 there was a great deal of hype about the use of
Java applets in web pages to produce truly high-quality interactive web applications. This has remained a niche approach for a number of reasons, some of which were solved by the Java Plug-In and Java WebStart. Nevertheless, use of client-side Java is still unusual in web applications.
I've recently read some hype about the AJAX design
pattern -- the use of asynchronous data to the server on behalf of a highly interactive Javascript program running on the browser. The Javascript handles user events, communicates with the server, and uses dynamic XHTML to generate GUI.
What remaining obstacles to the use of client-side Java are solved by the AJAX approach? Why is Javascript code faster to download than Java applets? Why are screens generated by dynamic XHTML faster than screens built using AWT or Swing?
One advantage of using Java as the client-side language are that you can debug the applet GUI in a standard Java
IDE, whereas there is no convenient debugging environment for AJAX. A second advantage is that, as one refactors an application's architecture, one has the ability to move utility code from server to client (or vice-versa).
What advantages does the AJAX approach have over downloaded Java code?