Musing about Markup

With regard to Joe’s recent

post about the deficiences of XML, I have something of a counterpoint to

offer. XML was invented as an attempt to unify and simplify data interchange

between disparate systems. This had been attempted before, but the efforts

never gained sufficient momentum to achieve general acceptance.

XML is a subset of SGML, which has been around for a number of years. SGML is

also the language from which HTML is derived. SGML itself is very complex, as

it includes all sorts of mechanisms for defining domain-specific dialects (such

as HTML and XML). XML was released on the back of the general and massive

uptake of HTML, and was similar enough to HTML to be explained as ‘HTML that

computers can understand’. Part of the reason for XML’s success is the huge

surge in popularity of the internet and its promise of global connectivity, part

is due to its design. XML is simple and formal enough to be relatively easy to

design parsers for, while being flexible enough to describe most types of data.

Developers were also used to dealing with HTML style markup. This combination

of factors probably accounts for XML’s huge popularity. The biggest hurdle for

any attempt to standardise on a data interchange format was always going to be

garnering enough general support to make it the ‘de facto’ standard.

There is always more than one way to do things, and XML may not be the prettiest

or the best, but the details of its design are probably less important than the

fact that it succeeded in its goal of achieving a standard means of describing

data that was easy to pass around between otherwise incompatible systems. Now

that we have come to expect easy data exchange, we are free to explore

improvements, but we wouldn’t be in this happy position were it not for XML.