Monday, February 11, 2008

XML = 10 years?

I saw the flurry of posts this weekend about how it has been 10 years since the initial XML recommendation was published. I particularly liked Tim’s XML People. It is amazing for me to imagine that it really has been 10 years. I still remember sitting in my office at TechnoTeacher (long gone) seeing the announcement about the formation of a W3C group to standardize on a subset of SGML fo the web. Way back when Usenet was still useful and I was a SGML newbie reading comp.text.sgml to try and understand some of the crazy stuff I was working on. There is no way anyone in that era could have imagined how XML would evolve and emerge as the ever-present beast that we all know and love. or love to hate.

XML arrived at an interesting time. The 'Internet' was exploding. Networked computers went from an office/academic luxury to an automatic assumption. What that meant was that many people needed to extend existing, incompatible systems to share data. XML appeared at a time when a flexible, international foundation for data exchange format was desperately needed. XML was not designed for this; it was designed for text markup! For all its flaws, XML came closer than anything else that existed. Big business jumped on XML like it was the philosopher's stone.

XML has been credited and blamed for many things. It has been used an abused. When the customer need appears and drives things that fast, it means many technologies/methodologies/etc get carried along for the ride. I'm not saying XML was not worthy, only that XML got dragged farther than many would have liked, and was stretched sometimes past what most deemed appropriate. XML was also one of the tools that enabled the explosion of commerce on the internet. XML changed the game. Before XML, people defined rigid schemas and binary encoded their data. Versioning was very painful. Writing parsers for data formats was infamously problematic and error-prone. XML arrived as processing speeds became fast enough to support text formats where binary formats used to be the rule. XML also solved a number of internationalization issues, by mandating Unicode and defining standard rules for determining which encoding was used. XML introduced the world to the concept of a 'self-describing' format. People who complain about XML today often fail to realize how much that they take for granted did not exist back then. No solution is perfect.

If XML really is as horrid as people say, then why didn't another format replace it? Because there was no other format that solved as many problems. It doesn't hurt to have some heavy hitters in your dugout, too. XML didn't become so omnipresent because of politics. It is here because it was a better 'good enough' than anything else out there. 10 years later and we are only just starting to see other formats, such as JSON, usurp the role, and only in cases where XML was not necessary a good fit to begin with. That is a spectacular success in my book.

A number of people have taking the 10 year anniversary to ponder 'what next?' To me it is obvious. XML is part of the plumbing of the modern web. It is not perfect. XML vs JSON debates amuse me. Each has its own place, and there are large areas where either works. XML should not be a religion. XML is a tool. I don't hit a nail using a drill, nor do I carve holes in wood using my hammer. We live in the world technology plenty. Just as a journeyman carpenter learns about his tools, developers should learn and understand the strengths and weaknesses of the tools at their disposal.

XML is here to stay. Use it wisely and prosper.