Was the success of XML due to the price of RAM?

The triumph of simplicity just wishful thinking?

By Rick Jelliffe
August 19, 2009 | Comments: 4

As there has been no shortage of explanations tendered for the success of XML over the years, I don't feel so bad about offering another one: maybe the success of XML has little to do with XML and everything to do with the price of RAM!

Here is the sequence: SGML comes out when RAM is expensive, and it must be stream processed since documents are so much bigger than physical RAM: in-memory implementations are prohibitive. But in-memory implementations would allow random access, which is much more useful, especially for a generation of programmers used to DBMS and vendors needing to sell WYSIWYG systems. So SGML does not find mass acceptance.

In the late 1980s, RAM cost about 105 per dollar, and in the early 1990s it was cheaper but still fairly flat. But a big price fall started in about 1996, so that by 2000 RAM was about 107 per dollar. There is a nice table with the numbers here.

Cheaper, faster RAM means more documents can be squeezed into physical RAM, and as desktop computers moved from dumb paging to more elaborate virtual memory systems, the penalty of being more larger than physical RAM lessened even for programs that wanted to do random access. The streaming SGML generation of open source technology (SP, Jade. etc) did not get adopted by the new XML crowd: people don't do pipelines, nor work directly with SAX, and after a decade of XSLT they are talking about maybe doing something streaming.

It is not just a change in generation or a change in application, but also a change in RAM prices.

So what?

Well, standard languages and technologies designed and judged based on trying to learn the lessons of the past.

The message from XML is often taken to be "less is more". And so it is. But the over-complexification of XML perpetrated with the advent of XSD shows that there is a significant segment of the market for whom "less is more" is not compelling (and, perhaps, against the interests of their businesses.)

Tim Bray once described XML to me as essentially a re-branding of SGML (he was being dramatic and rattling my cage in a friendly way.) There is a lot of truth in that: Standard generalized markup needed to be re-presented to people who had dismissed it previously, but the thing that had changed was not the angle brackets but the techniocal feasibility of non-streaming uses.

When we look at the complexity of the HTML 5 efforts to set down the grammar that they actually want to use, I think we need to make the distinction between two kinds of complexity: one is systematic complexity and the other is exceptional complexity. The first is where there are lots of rules but they are all the same kind, the complexity is just detail. The second is where there is some gratuitous or arbitrary rule whose only purpose is to infuriate people (I am resisting mentioning XSD here, aren't I being good!) SGML had its fair share of the latter, but could have been reformulated to bring out the former, as HTML 5 is attempting to do with the HTML syntax.

You might also be interested in:


I agree that cheap RAM is a necessary condition for the success of XML .... and I doubt that it had a whole lot to do with a general sense that "less is more". After all (as we've been arguing about for around 10 years now) there's a lot in XML itself that is little-used, and the hard core of XML that is widely used could probably be specified in about 1/4 of the productions in the XML spec.

I don't think one can separate the success of XML from that of HTML. Initially XML got traction as "standard generalized HTML", and the demise of XHTML as anything but an alternative serialization shows that HTML is and still is the driver.

Likewise XSD got traction simply because of the widely felt need for an interoperable object/database serialization technology. The fact that it had W3C's blessing (at a time when the W3C "brand" was strong) outweighed its weaknesses. My impression is that XSD's many dissatisfied customers dislike the underlying XML technology as much as they dislike XSD itself. JSON for example is popular as much because it is not XML as because it eliminates the need for XSD.

None of these technologies got traction because of their inherent technical virtues. They were simply in the right place at the right time, good enough for some set of real needs,and their numerous flaws weren't fatal for the mainstream use cases. It's plumbing, and people only notice it when it breaks, and it's got to break VERY badly before a sane person would rip it out and replace it.

My memories match with Michael Champion's: XML benefited from one of the same factors as the rise of CSS: the rediscovery of the upside of separating content and style. A common slogan of XML (regardless of accuracy) was that it was a standardized way to "invent your own tags", then use some sort of XSL process to transform the XML. The XML was just intermediary. It was viewed as more or less an application of MVC to the Web where the Model is the XML and the View is the end-product HTML.

Then both HTML and CSS continued to evolve such that CSS could better absorb the styling burden and enable the HTML to be much more semantic (albeit with div and span elements and class attributes). Meanwhile, XML is now used for many other Web purposes like RSS, SOAP, and SVG.

I'd say the largest motivation was that we were sick of delimited-field data, fixed-width data, and mixed records files.

Right place, right time, and a core collection of users and developers who had turned their intent toward hypertext instead of WYSIWYG publishing. It barely mattered who. Any number of apps could have succeeded. The push from DARPA ensured that.

However, processor costs including RAM costs (the drive to the home desktop), demilitarizing the Internet, and a self-obsessed media that needed routing around as well as a financial industry tired of patching old COBOL-laden infrastructure contributed.

The good news was SGML was there. As much bad press was given it and ISO at the time, SGML was stable and that made balancing an inverted pendulum on it much easier. XML is the cleanup of SGML that should have gone on at ISO to meet new requirements. That said, not only XML but The Web itself was not possible until the hardware performance increased as the cost came down. Home computers made the critical difference because in the beginning the businesses were slow to adapt the web. The home user wasn't. On the other hand, it's not easy to make a case for a home user of XML. Business interests made that possible.

News Topics

Recommended for You

Got a Question?