I did my prognostication schtick at the beginning of the year, but I thought given the resuscitation aspect of this particular blog, that I would go back and look at things in a little more depth, as I’m seeing a number of interesting, and in some cases disturbing trends that are unfolding right now, things that will likely have a fairly significant impact upon the XML development community.

The first issue is just the fact that there IS an XML development community. I’m fielding a fairly significant number of inquiries right now concerning my availability from recruiters nationally, though unfortunately at this point family issues and a fairly full plate are keeping me personally pretty close to home here in Victoria. Nonetheless, what I see is the rise of core XML technologies - XSLT being the biggest by far, but even XQuery and XForms are beginning to show up - in the job listings. There’s a rising demand for XSLT developers right, and I suspect that as people begin to start incorporating XSLT 2.0 that this will increase still further (and should - XSLT 2 is just … better). XHTML is becoming “standard”, at least at the corporate level, and this in turn is feeding back into the rise of the manipulation tools that XHTML opens up. I’ve even seen a rise in demand for ontologists (now THERE’S an obscure field) and RDF specialists, as people begin to harness the ability to create metadata structures. It should be interesting to see what happens as RDFa begins to become more regularly incorporated into XHTML generation tools.

What this means is a little uncertain, though as a guess I think it signals a major transitional shift towards the declarative web architecture. Certain aspects of it (such as XForms) are still a couple of years out from wide adoption, but they are gaining adherents and customers nonetheless. I think Firefox has had a lot to do with this, but there are other factors, the biggest just being the normal open standards development cycle, which seems to take longer to unfold than commercial development but that nonetheless tends to become far more pervasive when it finally does penetrate.

At the same time, I see the rise of JSON, E4X, Linq and other “XML” languages as a fairly stinging rebuke to the DOM oriented focus of the W3C. I do not think that JSON is going to “replace” XML; what I do see though is perhaps the dawning realization that the XML Infoset does not in fact have to be represented in angle-bracket notation, and manipulation of XML does not and should not require getElementByTagNameNS() or other such absurdly long method invocations. If you mentally replace the outer braces of a JSON expression {} with , then the mapping between JSON and a simplified version of XML is (and should be) obvious.

We’re seeing such “compactification” going on in other arenas of XML - take a look at RNG compact notation (which bears a rather disturbing similarity to JSON, truth be told) to verify this, and compact notations of RDF are gaining considerable traction over the fairly unwieldy FULL XML notation (I expect RDFa to continue to push this principle).

E4X on the other hand works the other way in establishing the relationship between the JSON dot notation and the representation of subordinate XML elements, to the extent that such a long term convergence between XML and JavaScript is not only likely but pretty much inevitable. Declarative architectures are useful, but they are usually not sufficient; you need to have enough glue code in place - either explicitly with embedded scripting or increasingly implicit with behavioral XML bindings - in order to make the BEness DO something.

XML Binding languages will be the next arena of development (and contention) - the ability to assign a behavior to an XML tag is profoundly useful, and provides both the bones of the declarative structures and the muscles of the imperative one, while keeping the presentation layer safely off to one side. It’s not yet significantly utilized because browser support at this stage is still inconsistent - I expect that with the movement of XBL2 into the W3C this will likely change, though this change is unlikely to make its way into Internet Explorer without a fight. Time frame for this is about eighteen to twenty four months - far enough ahead that you won’t yet get a job writing bindings (though this is, in fact, exactly what all those AJAX developers are currently doing, even if they don’t necessarily recognize that fact) but close enough that if you are looking to make your mark in software world this is the place to be studying very, very carefully.

XQuery is out. I’m not sure how I feel about this. I’ve written two XQuery books over the years, both considerably prior to the actual release, and it is still a language that I have very mixed feelings about. The eXist database very nicely illustrates what you can do, however, if you mix XQuery with server based APIs and tie in XSLT 2 via Saxon 8.9.  That is a potent mix, because you are essentially “inside” the XML at that point - there’s remarkably little impedance where you have to deal with XML processors or parsers or serializing in or out. I think we’re just beginning to understand what this means in terms of server-side development, but I suspect it will transform the way we think about deploying server code, especially once you start working with XHTML+XForms (which is so incredibly well-suited for XQuery).

Speaking of XSLT 2.0, Microsoft has greenlighted a version of XSLT 2.0 to be deployed with the next version of Visual Studio. My suspicion here is that if Red Hat hasn’t also raised the possibility of pushing libXSLT to the 2.0 level then it should do so -  XSLT2 leaves XSLT1 in the dust in terms of both usability and performance, and I suspect that we’ll see more commercial level XSLT2 transformations appear over the course of the next year. The complexity, verbosity and need to resort to recursive programming has signficantly limited XSLT 1.0 adoption over the years … by largely eliminating the need for unnecessarily recursion and cutting down the amount of code by a factor of three or more to accomplish most transformations, XSLT 2.0 saves development cycles, more readily integrates with third party extensions, and can handle a lot of the more esoteric “routing” functions that currently are the province of large applications such as Microsoft’s BizTalk server.

For all that, the role of the W3C is shifting away from being the developer of forward looking specifications towards being the shepherd for smoothing the rough edges of existing “ad-hoc” specifications. SVG and XSL-FO both represent the move up into the application space and for the most part have been less than totally successful - for instance, XSL-FO at this point seems to be more a mid-point for transformation to PDF than a fully realized and widely adopted standard, and the recent debates on the Open Document Format vs. Microsoft’s OOXML formats showcase the fact that document specifications form more of a spectrum than a definitive single standard, because the requirements of what we do with those documents vary so dramatically. I think the jury is still out on SVG - it’s gaining some penetration into both the browser and mobile space, but interest in SVG waxes and wanes depending upon who is incorporating it at the time.

To me, the interesting things being done in XML are increasingly occurring in the application and vertical markets: HL7 in the health care field, GML in the mapping and geographical location space, XBRL or UBL in the business space and so forth represent sophisticated ontologies rather than formal schemas, the understanding being that getting complete agreement on the structure of any field of endeavor may be doomed to failure between differing participants, but you can (for the most part) agree upon the general terminology and language for those core concepts. This approach actually makes a great deal of sense - a dictionary is a self-descriptive ontology, but the province of dissecting the meaning of Tolstoy’s War and Peace should belong more readily to lit majors rather than linguists. We’re beginning to realize that meaning is a remarkably fuzzy concept, almost quantum mechanical when peered at too closely, and as such should not be all that surprised to find that there are few universal absolutes when dealing with language, whether natural or rationalistic.

Similarly, I suspect that while RDFa may have a fairly major hill to climb in terms of adoption, it will likely end up becoming integral to the semantic web fairly soon. Folk ontologies (or folksonomies, as some have referred to them) are not in fact really ontologies at all - they are instead simply property associations. If you can articulate a consisten property relationship using attributes outside of the normal XHTML ones, then you can do more than simply tag a document - you can in fact create relationships between entities in an XHTML document without having to leave the context of that document. That’s what RDFa does. These can then be interpreted by RDF enabled tools, making it possible to achieve something of the holy grail of the semantic web - provide a simple way of nonetheless encoding metadata into a document. I’ve argued for years that RDF as it exists right now is too complex for your average web developer, and what’s more it perforce requires duplication of content between the RDF and XHTML (or whatever document format you’re using). Eliminate this need for duplication by embedded the descriptive relational characteristics directly in the element’s attribute set, and all of a sudden the Semantic Web begins to move away from being unachievable to being doable.

I’d ask for your feedback on this as well - what areas do you see XML technologies expanding into, and where do you see it fading?

Kurt Cagle is an author and web technologist specializing in XML-based technologies. He writes understandingXML.com and is the webmaster of XForms.org. He lives in Victoria, British Columbia with his wife and two daughters, and is coming to terms (barely) with having a teenager in the house.