Sunday, August 19, 2012

XML reconsidered: Part 0


Recently, my love-hate relationship with XML has once again intruded into my consciousness.  It was on hold for quite a while.  For some eight years I could happily dismiss XML as something I really didn't need to deal with just now, or even think about... maybe later.

My latest gig has changed all that.  I am now awash in Big Company XML.  The good news is that said Big Company has been sensible, on the whole, in their use of XML; they have not fallen prey to techno lock-in by plumping for the bells and whistles that have been available.  The bad news is that the use of XML in the enterprise is still headed for the rocks, as the "case" for using those bells and whistles, wisely eschewed so far, is getting stronger.

This is the Golden Hammer syndrome.  You may start out simple, using only the basic features of some tool, some enabling technology.  But, over time, your dependence on this particular tool grows, even if only by dint of familiarity, until you reach a stage where the tool, and how it "works", starts to determine how you even think of the data you're applying the tool to.  Your data - and their proper handling - are no longer your paramount consideration.  Instead, your acid reflux is over how to use your tool "more effectively", and meanwhile your data will simply have to conform to your tool's features - and its limitations.

So it is with XML.  Early on, there was a big push to sell XML as a data format.  While document-centric applications of XML - much truer to its origins in SGML - exist, it's safe to say that XML is being used, and rather overused, as a ridiculously verbose - and finicky - syntax for property sets,  whether these be configuration files for control or data-sets shunted through middle-ware. This devolution of a syntax, designed for deep hierarchical structures, into glorified name-value pairs is, in turn, the long-term consequence of early decisions on how to process XML.

And therein lies the rub.  We are, in fact, already locked into certain ways of processing XML, to the exclusion of other ways.  And this, in a feedback loop, affects the ways in which XML itself is used. The taggery written out is now mostly if not entirely determined by how the stuff is going to be read back in.  What the processing tools make convenient now dictates everything. 

In the blog posts to follow, I hope to explore my dissatisfaction with XML in this regard.  Stay tuned.

No comments: