XML 10th birthday

XML 10th birthday

XML 10th birthday

This year we are celebrating the 10th anniversary of language that has already changed our lives quite fast. In February 1998, the W3C published the specs for XML 1.0. Nevertheless, XML is a bit older to tell the true: SGML was it original father two years before, in 1996.

After the XML adoption, the way we work with data was never be the same again. It’s incredible to see how fast we have adopted it as it was one of our native tongue.

To commemorate the event, I will recommend you reading a nice article about the abuse of XML called “XML Fever” published on Communication of the ACM vol 51. issue 7 (Erik Wilde & Robert J. Glushko).

As authors suggest: XML is no more than a syntax (or language) to encode information in a tree form.

It is quite easy to encode hierarchical information in XML. The problems start to appear when encoding things that are not trees like graphs. Forcing you to select a main tree view of the data and to encode the rest of the links as ids & references (ID & IDREFS, e.g.).

It is quite easy to create new languages using new tags in XML: This is a good thing and a bad thing and the same time:

  • Good news are that we develop new languages and interchange formats in a more productive way.
  • Bad news are that, designing new languages is hard and should be though twice before reinventing the wheel, especially if you plan your language for supporting evolution, change, maintenance, versioning and more people using it, probably not it in the way you initially expected.

Some organizations like W3C & OASIS are promoting the standardization of common languages to create solid working tools.

For MDD, XML has played a significant role as a catalyst. Before XML, languages used for MDD used custom grammars, databases records and tabular data. Querying, updating & transform of such data was not easy: query, update & transformation code was quite dependent of the structure (grammar, metadata) of the data been considered. Changes to a DSL had a huge impact in the rest of the accompanying code making the approach in some cases unpractical.

Fortunately, XML has alleviated this problem in a high amount. Now, XML can be processed much more independently of the content, and therefore, code can be less dependent of the encoding and persistence of the information.

Developers can work now with structures and concepts in memory based in classes and properties. Someone else (the serializer) will take care for storing the information, may be in XML, and retrieving it back to memory whenever it is needed.

Transformation between models were never trivial, but now there are a bit less plumbing to deal with thanks to XML.

Happy birthday XML!

Post a comment.