Chris Anderson: Developers Hate XML


According to the current version of the Chris Sells XML DevCon page (don’t bother bookmarking it, Chris Sells doesn’t believe in permalinks so all the content on that page is transient) I noticed that Chris Anderson is presenting the following

Developers Hate XML

Chris Anderson

While everyone is currently infatuated with XML, developers are constantly doing battle with trying to rationalize and leverage XML in their applications. Ill talk about having to balance correct XML-isms vs. usability in XAML, about the preponderance of XML reader/writer/DOM/serialization APIs, and about how all of this throws you into a horrible programming experience of loosely typed runtime errors. This reveals XML for what it is a data encoding. XML is the ASCII text file of the 2000s. While web services are often called “XML Web Services,” the reality is that every web service API abstracts the developer from the XML view.

Nothing says vote of confidence like when the chief architects of one of teams you work closely with says your technology sucks. 🙂

Seriously though, I am curious as to what his presentation actually will be about. Reading the abstract, it seems like it is another iteration of a data-centric user of XML coming to the realization that for their scenarios XML is just CSV on steroids. People’s behavior when they realize this usually follows a pattern similar to the five stages of grief. First there is denial, this usually takes the form of an initial disbelief that after all the hype they’ve heard about XML it isn’t working out fantastically for them. Then there is bargaining, this usually manifests itself as attempts to not use XML but still use it. Often you here phrases like “binary XML”, “XML subset” or “XML profile” at this point. Then there is anger at XML for being more complex and verbose than they need. At this point you get to either read a rant-filled email, blog post, conference paper or in this case conference presentation about how badly the technology is suited for its purpose. Then there is either despair or acceptance. One doesn’t follow the other. If the next stage is despair in this case the person ends up not using XML to solve that particular problem. On the other hand if it is acceptance, XML is still used but in some cases it is in one of the forms that were mentioned in the bargaining stage such as a binary representation of an XML stream or using some subset of XML.

Hopefully Chris Anderson will post his slides online.


Comments (10)

  1. Amber says:

    Hi dare,

    I have a love hate relationship with XML. I love elements. I hate attributes, I hate the use of quotation marks, I mean what is that really mean? The whole file is a freakin text. Okay I really hate is namespaces. I mean look at a soap message, it is the worst!! Why not just use a .Net style namespace? Soap.Header

    Soap.Body. Anyways what is the point of using XML if your going to pepper it with with a mismash of gunk!

    Anyways, I still love your blog.

  2. SBC says:

    I think XML is great and it certainly has its place. It can do wonders if used judiciouly. About a year ago, I had a tech lead who went nuts with it – trying to make it into a relational database system! (see postings – http://weblogs.asp.net/sbchatterjee/archive/2003/11/22/39257.aspx)

  3. AndrewSeven says:

    Its a kind of reverse marketing. With any luck, the sales people will stop selling X-eveything X-everywhere and let us use Xml where it is appropriate.

    I’m fond of saying : I love Xml, I just rarely have a good reason to use it.

    We had a consultant recently who kept saying "it will communicate in Xml" while I kept saying that the Xml is irrelevant, they are web services. "It will return xml" … it will return Objects.

  4. Eric Newton says:

    Amber: you hate attributes but like elements better? elements bloat the xml x2 for every field versus an attribute that is Name=Value, not [name]value[/name] which can add up when you send over a couple hundred records in some cases.

    consider rss, if several of the dumb elements that are only there to relay a value were changed to attributes, I bet bandwidth for weblogs.asp.net/rss.aspx would be split in half.

    Another XML thing I hate is trying to navigate through a document with a "default namespace" but the Xml DOM doesnt seem to honor the "defaultness" of the namespace. Or at least XPath navigation.

    And the sheer free-formness of XML is almost as bad as ascii… what we need as developers is to begin a Patterns and Practices for XML / Data type communications too

  5. Sceptic says:

    I hate the damn stuff, initially I had coded apps with XML/XSL (thanks microsoft TR/1999!! gits) to leverage client power in my intranet to discover tha the xml parser wasnt on all my pcs in the intranet, neither was it going to be, I’ve written apps that return SOAP style messages before SOAP was properly defined, I’ll tell you now thats a damn site easier than bloody soap is, and quicker, who needs interop ! 🙂

    But it blows. Its bloated and overcomplicated. Now Im faced with the concept of WSDL first and I swear if someone doesnt just make a damn tool to write it for me I’ll go insane.

    Face it XML is machine readable, originally it was supposed to be human readable too, but with all the damn namespaces and schemas you have to understand to write the stuff now, just give me the tool, its too much like hard work and I have better things to be doing.

  6. xml training says:

    Personally I enjoy using XML in apps, the structure fits my programming style perfectly.

    About ELEMENTS vs ATTRIBUTES, i prefer elements, for readability and performance.

  7. Ben Bryant says:

    I like your angle on the 5 stages of grief. So true! I use XML in C++ just about every day and love it, but only because I don’t use validation, namespaces, XSL, SOAP, MSXML, and all the other XML standards, tools and "solutions" that add too much complexity and overhead for my needs (I use CMarkup). Developers trying to integrate various XML technologies into a solution will definitely run into this "horrible programming experience of loosely typed runtime errors." Its hard to debug; you need workarounds when there are bugs and versioning issues in those components. But it is ultimately a matter of wrong expectations, a trap for those who hear the hype and imagine that XML is so much more than it is — "hey, I’ll just plug in these two XML technologies and my app will be done…" — its a scary concept. In contrast, "CSV on steroids" is an excellent way to express the way I see XML (in my scenarios), and I don’t see you as disagreeing with Chris Anderson, because ultimately the practical developer always has to get past all the hype and nonsense, whether calmly or angrily, and find the tools right for his/her projects. BTW, Dare, your contributions to XML are undeniable, and thanks for blogging.

  8. Dennis says:

    XML does at least two things, and imo they should be separated.

    1) Documents, meant for human consumption (even if the XML itself isn’t easily readable). I think XML is good for this. Namespaces are a big win, because you can mix xhtml, MathML, SVG, etc in the same document, and in theory your browser should be able to parse it all out nicely.

    2) Machine communication. XML is the wrong tool here, SOAP etc notwithstanding. It has all kinds of features meant to ease readability and construction by hand, which make programming more difficult. People run into this, and use simplified subsets of XML. What we oughta do is go the rest of the way, and just use S-expressions.