Real World Computing
Content is king
This ability of data-driven websites to generate XML has another, potentially even more important role to play. HTML-based web pages fail miserably to deliver a reading experience of comparable quality to paper so, to fulfil its potential, the web must eventually move to an inherently stronger design platform, which I believe can only realistically be XML-based rendering via a plug-in player. And while even the simplest of data-driven blogs will be easily converted come this future revolution, the most advanced static HTML websites will not.
So where does this all leave us? At a crossroads. Today's web is largely the product of an army of web designers using tools like Dreamweaver to create individually crafted HTML pages, but there are fundamental limits to this approach, both in providing content and making it accessible. The truly scalable alternative is data-driven web page generation, but this demands serious programming skills well beyond the average designer and site budget. Simultaneously, the rise of blogs has revolutionised expectations toward both the ease of content creation and accessibility, expectations that static sites can't meet. It's an uncomfortable situation, with web designers squeezed between the twin forces of the data-driven enterprise-level supersite and the individual blog. And as if that weren't enough, we're about to be hit the new world of XML-based Rich Internet Application.
Is there a way forward? Data-driven generation clearly offers so many immediate, mid-term and long-term benefits that it has to be brought within the grasp of the average designer. This is a topic I plan to return to, to show how it's possible to build a real-world data-driven site without writing a single line of code, but for now I'll stick to the underlying principles. Data-driven sites require programming knowledge beyond the average designer, so the only possible approach is to take advantage of the programming skills of others, which is exactly what Content Management Systems (CMS) such as the free, open-source Drupal (www.drupal.org) provide. A CMS is in effect an advanced and extensible web application for building your own advanced and extensible web applications. Once you've installed it on your server, all you need to design your own web application is a browser. Better still, once your site's CMS is up and running, your contributors also only need a browser to add and edit content.
With CMS, we've come full circle, back to Berners-Lee's original vision, but as a two-stage process that truly delivers the best of both worlds: centralised design control and distributed content creation. Who knows, if the web really does shift to player-based rendering of XML, the future of the web browser may come to lie less in displaying web pages than in authoring them!
Predicting the long-term future is never certain, but today's web has already changed so radically that static page-based publishing already looks outdated and underpowered. Now when I'm asked how best to produce a modern website, my first recommendation remains to focus on content. However, my second recommendation has changed: forget Dreamweaver and get yourself a Content Management System.





