With application deployment over the web becomming so common(even for intranet apps) , why would one invest time (and money) to build Swing based client apps..?
There are many reasons for developing rich client apps vs. web apps. While browsers are currently popular, they are are also very focused and restrictive. Web apps have had 3 distinct advantages over JFC apps: automatic distribution, consistent user interface (albeit dumbed down), and that simple web apps are much easier to build.
However, with JavaWebStart and InstallAnywhere the automatic distribution advantage is pretty much neutralized. JFC apps can produce apps with huge improvements in GUI over web apps. And most web applications which are not basic hyperlinked documents or simple forms, are pretty complex to develop and maintain.
So, when you cut through the myths the end result is that if your application is not basic hypertext documents or simple forms, a JavaWebStart JFC-based app is worth considering. This enables client applications to better distribute processing to client machines, produce truely interactive GUIs, and interact with the growing number of web services available on intranets and the internet.
As an example most of my developer tools (IDEA, JBuilder, Eclipse, NetBeans, DbVisualizer, PureTest, LdapBrowser, Oxygen, ThinkFree Office, etc) are all
Java apps running on Windows, Linux, and OSX.
JFC is also being considered for use more and more in
applets. My applet experience is that it grows exponentially more difficult to support AWT as more features are added into the applet. It is worth considering using JFC and requiring the user to install the JavaPlugin and latest JDK in many applet deployments, based on richness of applet interface and saved maintenance costs.
My 2 cents,
Vince
SCJP J2EE Complete, co-author