One surefire technique for making progress in any field is to develop a
theory that sees the current state of the art as a special case of a
more general theory.
In Physics for example, Einstein showed that Newton's equations are but
a special case of the more general Relativity theory. In mathematics,
Fermat's famous last theorem was solved by a Mathematician who first
showed that it was a special case of a more general family of equations
known as Elliptical Curve functions. In medicine, immunity to the black
plague that devastated mainland Europe in the Middle Ages was merely a
special case of a genetic mutation known as CCR5-Delta32. Much to the
pleasure of many of my fellow Irishmen, beer is now known to be only a
special case of a more general theory of alcoholic beverages that
include such delights as Dark Ales and Whiskey.
Software is not immune to the charms of this sort of specialcase-ology.
Arguably, a large part of XML's meteoric rise stems from its feeling
like a generalization of not one but two special cases. On one hand we
have HTML, which, post-XML, can be understood as a special case of a
tree structure markup language for handling documents. On the other
hand, we have relational databases comprising tabular structures.
Thanks to XML, these can be thought of as a special case of a tree
structure markup language for flat, regular structured data. So, all
documents are trees. Not only that, but all databases are trees --
albeit quite flat ones, but trees nonetheless.
And thus, in a puff of logic, two special cases that have dominated the
computing landscape for 25 years -- documents versus databases -- are
unified into an intellectually satisfying continuum. A Yin/Yang balance
is restored to the universe thanks to XML.
Bliss....
Of course, all such reverie is doomed to be short lived. This world is
not here to yield to our petty intellects, but to constantly challenge
us! It insists on putting forward exceptions that break all our feeble
attempts at universal rules. It stays one step ahead of us, creating
the need for further generalizations and further generalizations as we
strive endlessly for the ultimate understanding. And thusly it comes to
pass that every generation's silver bullet looses its power, its sheen,
and eventually melts down to make toothpicks for werewolves.
XML's time for melting down will come too. What will replace it?
Whatever it is, it is likely to follow the tradition of making XML a
special case of a more general theory. What will it look like? I have
no idea. It may already be out there, in a lab somewhere or in the mind
of an eccentric customs clerk like Einstein or scribbled in the
marginalia of a textbook like Fermat's last theorem.
Having taken you on this semi-sensical journey I feel obligated to take
a guess at what the generalization might look like so here goes...
XML and XML processing will be re-interpreted as a special case of a
more general data modeling and data processing framework that will grow
out of biotechnology and nano-fabrication. In short (and yes, I know
this is "out there"), XML will become a special case of the Biological
Sciences and we will most likely need to spray water pellets on our
software to keep it moist.
Am I serious? Maybe. Just maybe.