Last December at XML 2003, I met with Jonathan Robie, one of my XML heroes. You’ll find his name on such core XML specifications as DOM, XML Schema, and XQuery. Jonathan is both a co-inventor of XQuery and, as XML program manager at DataDirect, a leading implementer of that standard. So he gets to combine theory with practice — nice work, if you can get it.
The title of the slide that contained my little search engine was “Fingerpainting on the universal canvas.” And not coincidentally, the two Gates quotes that it found were expressions of that noble concept, one from a 1990 Comdex keynote and one from the 2000 .Net announcement. It’s actually Bill’s fault that I’m obsessed with the notion of data as Play-doh — a tangible substance that we can squeeze, stretch, and explore directly. Microsoft hasn’t consistently followed through on that vision, but I’m sure it’s correct, and I’m always on the lookout for technologies that can help make it real.
A universal canvas requires a universal way to represent data. Other solutions are conceivable, but let’s accept for now that XML is a reasonable one, and that it’s here to stay. How does XML become Play-doh? The first answer, for me, was Perl with its XML::Parser module. Then came XSLT (XSL Transformation), which traded away procedural idioms to gain declarative transformational power. Then came Python with its libxml/libxslt modules, which married the procedural and declarative styles in a highly interactive way. That’s been my weapon of choice lately, but now there’s a new contender: E4X (ECMAScript for XML).