With so many people talking about stuff like Web 2.0, WebTops, Web Operating Systems, it is an irony that not much has really happened to bring this to main stream. True that technologies like Java Web Start did exist, but they still have not made it to the mainstream. Java is supposed to be cross platform, but I have not really used many Swing applications or applications made in AWT.
On the other hand, there are a lot of application that are going the web way. Take a look at the admin consoles of all those Java application servers, web servers and kind. They could easily have been swing application, but they are web pages, trying to run applets.
One reason I can think of is that the creative guys who decide the look and feel are more comfortable with HTML output. To elaborate, let me showcase a representative of the web applications that I have worked on. These are not merely web pages, but have attained the standard of an application with AJAX doing all the magic, that a traditional web application can do.
The development cycle usually starts with a creative designer sketching out how the application must look like. Then comes the HTML guy who codifies the drawing to static HTML pages. Two stages done, and it is now that the developer enters the scene. In the traditional programming model (Visual Basic for example), the developer has to go through the pain of dropping all components into the canvas, and after that start coding it. The conventional problem of applying styles is compounded by the fact that incorporating changes by creative designers into the application is another big process.
HTML , or more generally, the concept of defining XUL has now separated the responsibility of look to the creative designers and HTML coders. The behavioral part of the application is the only worry for a developer, who interacts with the backend, and gets the application complete. This paradigm, I suppose allows more flexibility.
Now applying this theory to desktop development, a developer is least happy when he learns OS specific APIs, and places components (defining the X and Y co-ordinates, heights and widths). Single pixel malfunctions that are easily spotted by a designer, take months for a developer to understand. That is the reason people may move towards adapting the web way of doing things for creating desktop applications.
I was looking at Javeline DeskRun, expecting them to deliver a robust runtime on which an Javasctipt enthusiast can port web sites, but nothing cross platform really came up. These guys based at Netherlands seemed to have a good product, but even as I write, the site is defunct.
Adobe Apollo, given the fact is coming from a company well known in this space with application like Flex, Flash and PhotoShop, seems to be in good shape. Though I have ported very less of meebo.com to Apollo, I am already liking it. Though i fear that the application may be slow, I see improvements in this space. I had also heard of Mozilla Firefox people coming up with something similar.
SilverLight is not bad either, but my only reservation comes when they talk about being cross platform. I would not like comment on it yet, as I have not really seen it in full power.Anyway, this article is not a comparative essay, thats a verse for another blog.
However, I am tying to emphasize the XUL way of doing things.
And yes, the latest Google Gears. An application well thought of, with tons of features, but lot more work to be done. Nothing new in it though, but that will push this technology of "from-web-to-desktop" even further, good for developers like us !!
So lets me write back when I have fully ported meebo.com to become an apollo application, that will make it very similar to my favourite Pidgin (formerly GAIM) - a desktop multi-protocol messenger.