WebStart and Web Browsers
I posted the previous post (JDNC and Rich Internet Applications) to the JDNC forum and got a timely and well-considered reply from Mark Davidson. It has made me realise that I have completely failed to articulate what I find so attractive about the browser metaphor and, by extension, my perception of what a RIA should be.
RIA is an acronym I saw first used by Macromeduia in conjunction with its Flex product. But I have seen it more generally used by those with a server-side Java perspective, trying to describe what are essentially web applications but with a richer interface. There are a variety of technologies for doing this but most share a common architecture. Rather than delivering HTML, the server-side is responsible for constructing an XML payload (which typically includes both declarative and procedural elements) that is delivered (sometimes via a proxy) to the browser. The browser (or a plug-in hosted by the browser) then presents the application to the user.
To recap: as a server-side Java developer I swap all the capabilities of the user's browser (its handling of D/X/HTML, CSS, DOM, Javascript, plugins...) for somebody's proprietary XML dialect and hope for the best? Perhaps - if the company is big enough and has the resources and is spending the time (Microsoft, 2006+, XAML anybody?). If I had to categorise WebStart I would have to put it into this camp. The differences are that it is honest enough to do away with the browser and Java provides a hugely rich environment.
If I look at the applications I use day-in/day-out, there is a spectrum to how complex and interactive they are. What I am struck by is how many of them are now 'browser-based', despite all the compromises that must bring. Obviously this is also a matter of taste, but I am with those that do not believe that the browser has reached the end of its development. For the record, here is a list of things I use a browser for:
- browsing ;-)
- blogging (Blogger & Bloglines)
- documentation/design (Twiki)
- bug tracking (Bugzilla)
- filling out my tax form (something from the UK tax office)
...and here is a list of things I don't do with a browser:
- email (Outlook)
- music (iTunes)
- cutting code (Eclipse)
- presentations (PowerPoint)
Obviously I don't always choose a browser-based solution for its user-interface. For example Bloglines has the advantage that it can keep track of what I've read, irrespective of where I've read it. Many of these browser-based solutions would benefit from a richer user-interface. Blogger, Twiki and Bugzilla would benefit from some form of 'text-editor' component, Bugzilla from a 'table' component and Blogger from a 'calendar' component.
There is an inherent attraction of having a number of browser-based applications; they can be seamlessly tied together. Its not just because its trivial to put a link on a page, but also because these aplications live in the same environment and follow the same rules (eg I can go back to that page, I can bookmark it, I can send a link via email, I can open it in a new tab). Finally browser-based applications often just plain look better. In an application where most of the information is read-only, the ability to easily control how that information is rendered is a big plus.
My problem is what is the way forward for a Java developer who wishes to offer a richer user-experience while retaining the benefits of a browser-based solution?
Comments