Timely snapshot/reality check from Kurt Cagle -- 14 observations/predictions (numbered 1 - 15, but #10 is missing at the moment).
In short, while XML is not exactly doddering off to the rest home, its angle-bracket knees are no longer as flexible as they used to be. If it were a person you’d expect it to be muttering about those damn JSON punks and how property taxes and inflation are eating up its standard of living. It no longer is as flashy a technology as it used to be (even as Flash has been migrating to an XML format), and more than once I’ve run into twenty-something AJAX hot-shots who declare XML so yesterday (even as they write applications that bind AJAX objects to XML structures). It’s become the establishment, though in many respects I suspect that while its glory days are behind it, XML is becoming more integrated into the fabric of computing.
To that end, I wanted to offer up an assessment of where XML itself is going.
A few excerpts, with my $.02 added:
[#3] The Marriage of XQuery and REST. I’ve written about this fairly extensively in this venue, but think it is worth reiterating here. Combine an XQuery based system with a server objects namespace and you have the foundation for a remarkably powerful server environment comparable to ASP.NET, PHP or Ruby, and what’s more, such a system is remarkably neutral in its deployment (you could deploy such solutions from ASP.NET, PHP, JSP or Ruby).
Very intriguing scenario -- a more data/content-centric vision for future app server models, with the expressive power of XQuery (and its strong typing etc.) potentially displacing/reducing the role for web-centric scripting/"dynamic" languages.
[#4] Add XForms and Stir. XQuery is effective because it reduces the middleware “translation” layer to practically nothing; if you work with UI components that can in turn consume that XML (either via standalone model instance islands a la XForms or via other XML aware toolkits) and you have a remarkably powerful combination where you are shuttling XML back and forth without ever having to worry about the underlying implementations. Such a solution isn’t a “total” solution, but then again it doesn’t need to be - you can effectively wrap services such as sendmail calls or image manipulation in an XQuery module that lets you stay at the XML abstraction layer.
I've been an XForms fan for several years, but it's a lonely recommendation/standard at this point, especially with Adobe and Microsoft trying to diplomatically argue that it has no place in the XML universe. On the other hand, with strong support from vendors including EMC (through Documentum) and IBM (through Workplace Forms, née PureEdge), it'd be premature to dismiss XForms.
[#7] Semantics isn’t just for kids anymore. The rise of folksonomies have brought the terms “taxonomist” and “ontologist” out of the domains of library science and religion respectively, and turned them into remarkably high paying jobs. We’re now discovering that the process of defining schemas is remarkably difficult, and that meaning is similarly difficult to hold and describe. While I am still not sure that RDF is the best language for describing such semantics, I see much of the borders of what used to be called AI and cybernetics increasingly described in angle-bracket terms, and declarative languages in general enjoying a renaissance as we push our awareness of meaning to the next level. If I was entering IT as a newly managed IT college graduate, I’d be looking at semantic systems and knowledge management as the “hot” fields to be getting into.
Anybody else remember Turbo Prolog?...
RDF and OWL are useful for expressing relationships and rules, and I'm intrigued with leading-edge RDF-like models such as Freebase (request an alpha account and explore; very thought-provoking stuff), but I don't see proto-"Semantic Web" developments reaching the tipping point in mainstream IT anytime soon.
[#15] XML Databases and the plateauing of SQL. This will take a while longer, but I see SQL-based server systems plateauing in the next few years - they won’t go away, but those databases will likely begin to look increasingly like XML databases, while existing XML based database systems will continue to gain market share. Part of this will likely be due to XQuery (plus some form of XUpdate, which will likely be introduced shortly). I think that XUpdate has been slower out of the gate because the entrenched SQL vendors realize that by having both query and update that a big rationale for their SQL products as separate, self-contained systems goes away, but customer demand, hungry commercial upstarts and OSS projects will likely drive towards a need to readdress this issue.
One step too far, imho; I see XQuery and SQL having complementary -- indeed, synergistic -- roles for the foreseeable future. XML is in some ways an idiosyncratic data model, and it is not a viable substitute for many important aspects of the relational model. It may seem mundane to some, but the IT world has a huge and growing need to deal with databases, not just (data- or document-centric) XML documents, and the leading-edge DBMS vendors are on a very significant power curve -- in part because they're also incorporating XQuery where appropriate.
I also think the best way to master XQuery is to first master SQL -- learn about set theory, relational calculus, normalization, etc. (you don't need to master the vocabulary; the concepts aren't that much of a braincramp for practical/real-world applications), then start accommodating the XML model differences and idiosyncrasies as embodied in XQuery.