XML: The Unix Pipe or the Assembly Language of Web 2.0?

The sharp and capable Clemens Vaster says that "XML is the assembly language of Web 2.0," drawing a complexity/productivity analogy to higher-level programming languages, which everyone but Steve Gibson thinks are worthwhile tools. The upshot: "[we] have arrived at the point where matters have gotten so complicated that a layer of abstraction over pretty much all things XML has become a necessity for everyone who makes their money building customer solutions." Not everyone agrees: James Speer balks andTomas Restrepo \<a href="http://www.knowing.net/ct.ashx?id=244dc338-60ff-412f-bebf-23a1d0de625b&url=http%3a%2f%2fwww.winterdom.com%2fweblog%2f2006%2f06%2f18%2fWCFComplexityAndXML.aspx"" target=_blank rel="noopener noreferrer">says that that Clemens is conflating XML and WS-*.

I disagree even more vehemently. One of my favorite recent quotes was Ray Ozzie's quip that "RSS is the UNIX pipe of the Web." In addition to being encouragingly the sort of quote (technical, insightful, engaged with current trends) to encourage Microsoft watchers, I heartily agree with the implicit emphasis on flexibility.

One of the defining characteristics of assembly language is that it is inflexible: it's hard to write high-abstraction-level code in ASM (possible, but it's not facilitated by the language). Another characteristic is that it is dominated by implementation idioms. What springs to mind is is XOR AX,AX which a generation of x86 programmers used to set a register to 0 because it was mildly faster than MOV. Because \<a href="http://www.knowing.net/ct.ashx?id=244dc338-60ff-412f-bebf-23a1d0de625b&url=http%3a%2f%2fwww.joelonsoftware.com%2farticles%2fLeakyAbstractions.html"" target=_blank rel="noopener noreferrer">all abstractions leak, all "blackbox" systems are fuzzy and imperfect. No matter how worthwhile the aspirations of the WS-* stack, in practice systems using the stack will gather implementation-specific peculiarities. Perhaps no more than any other framework, but when tools are used to generate significant amounts of code, they inevitably produce low-abstraction code. Look at interface designers and the naive way they align controls: not by using a variable or directly referencing a dominant control, but by generating the same code over and over.

Similarly, if the XML moving between our Web 2.0 services is primarily tool-generated and difficult to comprehend, that will stand in the way of intermediaries adding value, which are an essential part of \<a href="http://www.knowing.net/ct.ashx?id=244dc338-60ff-412f-bebf-23a1d0de625b&url=http%3a%2f%2fwww.ics.uci.edu%2f%7efielding%2fpubs%2fdissertation%2ftop.htm"" target=_blank rel="noopener noreferrer">Web architectures. RSS is successful, not in spite of being "really simple," but in large part due to being so. The same is true of HTML. The same will be true of the next major innovation in Web 2.0.