Feedback for JDJ article:
Beyond HTTP Will browsers ever deliver applications instead of documents?
by: Ric Hardacre
Jan. 31, 2007 09:15 PM
This article rekindled my long-held belief that web-based applications are the wrong approach for developing dynamic, desktop-like Internet applications. A browser-based application, however expertly developed, will always be an approximation of the real thing.
Could it be that we’re so focused on the current development trends—"Web 2.0", AJAX, JSF, Tapestry, Struts, and even JSP—that we’ve lost sight of what simply works best for applications with a desktop feel?
Sure, there are some applications that are well-suited to web-based delivery, such as blogs, newsletters, magazines, catalogs (for shopping), and other mostly-static applications -- even online maps are OK, at least the way Google did it. However, applications that require a high level of interactivity just don't work well. The author of this article revealed the inherent problems in his detailed account of the hacking it took to build the app he wrote.
The answer to this problem is simpler than we think: Java Web Start.
First of all, let me get this out of the way: any argument that claims Java is not suitable for development of professional desktop applications doesn’t carry any weight—disproving this claim is as easy as downloading Eclipse, IntelliJ IDEA, or even JDeveloper. Just google "swing sightings" and take a look.
It's really simple when you think about it. Just build client/server programs, but with automatic delivery of the code (via Java Web Start), coupled with RPC for communication to the server (RMI or CORBA for the real old school programmers).
Yes, the server has to be programmed well, with a solid API and a design that supports concurrency and multiple access. That's no different than a web application. The real difference is about the client-side user interface code—why try to approximate with HTML, Javascript, and DOM manipulation what you can do very easily with a good user interface framework like Swing?
Note that Google's answer is at least more productive for programmers: write the code in Java with a good framework, and automate the generation of the Javascript and DHTML required to deliver a web application. But I still contend that the end result is not as good as a real desktop application.
I'm sure the people behind Flex and Canoo would agree with me, but I think simple Java Swing, a remote interface to a good API, and a well-written server implementation is all you need. Delivery of these applications to your customers is taken care of for you by Java Web Start (and keep in mind that even a signed applet will do in some cases).
Oh, and you can also do this with .NET of course, but I would still build the server in Java.
Respectfully,
Luis Saenz, Oracle