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.