Decoupling the data from its presentation

If you have been following the development of the Windows Presendation Foundation, you've probably already heard about the New York Times reader, which has been around for a while. I am using it to read the New York Times and the experience is great. I would love to see somethng similar for BBC News online, which is my favorite source for news.

Like Google Earth, Virtual Earth 3D (since an ActiveX control is required), NASA's World Wind, the NYT reader is an example of combining the powers of a rich client on the desktop and the most scalable information system in the world, the Web. All these applications demonstrate the importance of decoupling the information from its visual representation. They also demonstrate the value of building domain-specific tools/applications on top of a powerful information system like the Web. Today, the vast majority of the information on the Web is delivered through HTML, limiting the visualization options by consumers and making the browser abstraction, with all its limitations, absolutely necessary. The popularity of AJAX applications illustrates the content providers' intentions to introduce richer interaction models than those traditionally offered by browsers.

The browser has evolved from a page navigation abstraction to being an application platform. Browsers today provide support for the presentation of structured data (HTML, CSS) and for hosting part of an application's functionality (ECMAScript). It's interesting to note the transition from applications hosted exclusively on the server (the early days of the Web) to applications that split the hosting of their functionality between the browser and the server. Given the wide adoption of standards like HTML and ECMAScript, application functionality can be written and delivered in a cross-platform manner, hosted within the browser. The Web plus the browser enable the transparent-to-the-user delivery of new/updated functionality but also the combination (mashing up) of data and functionality from various sources. It's difficult to top this model but I believe that if we can succeed in breaking the browser boundaries we could create ever greater user experiences around the Web's information.

Of course, quite a few things need to be addressed first for that to be a possibility in today's computing world. A non-exhaustive list includes:

  • Standards for encoding information; this is where microformats come into play. We are already seeing more and more information becoming available as XML-encoded documents in order to enable data mashups.
  • Sandboxes for hosting functionality; security is vital!
  • Transparent updating of functionality; one-click deployment attempted to do something in this space but I think we have long way to go still.
  • Composability of data and functionality retrieved from the Web; think of mashups for rich client applications or ActiveX across the Web (that's a scary thought, isn't it? 🙂
  • Identity of resources; of course it's going to be URIs (not necessarily HTTP ones though 🙂
  • Wide agreement on an application platform; ok, Java didn't make it, .NET is popular but it's not universal. Could an evolution of ECMAScript or something new like Firefox 3's innovations? Could WPF/E plus the upcoming integration with .NET (ported to other platforms) be a good solution? Too early to tell.

I am sure there are many more issues to consider. Definitely, nn exciting area to look into.