Lists Home |
Date Index |
At 10:17 AM -0400 4/9/04, Michael Champion wrote:
>Pandora's box was opened in 1997. XML 1.0 is optimized for SGML
>compatibility, and that turns out to be a decent compromise between
>human readability and machine processability for a lot of common use
>cases. All sorts of other use cases might be optimized: Wiki-like
>markup languages are optimized for human editability; there are XML
>serializations that are optimized to save space, (see
>http://xml.coverpages.org/xmlAndCompression.html) and there are XML
>serializations that are optimized to be quickly parseable (e.g.
>http://www.ximpleware.com/). XML has reached a point in it's
>evolution where people with some of these use cases are wondering
>whether XML's non-optimality for one thing or another outweighs the
>very real benefits, and are trying to figure out how to refactor
>things to get most of XML's benefits with fewer of its costs.
The problem with optimizing for such situations is that the result
tends to be less optimal for others. It's like trying to push out a
bubble in wall-to-wall carpet. Can't be done without cutting the rug.
Push it down one place, it pops up again somewhere else.
XML is very nice compromise between the needs of many different
systems. It's very compromise nature makes it wonderful for moving
data between heterogeneous systems. Optimizing XML for particular
environments and uses such as routers, wireless devices, numeric
data, remote procedure calls, record-like documents, etc. will make
it far harder to exchange data with dissimilar devices and use-cases,
even if it accomplishes some small gains in a limited, homogeneous
There are some use cases where XML is just not appropriate. I've been
saying for years that's it's not suitable for what I call images
scanned from nature: digital photographs, sampled audio, recorded
video, and the like. It likewise may not be suitable for the smallest
of devices. I wouldn't try to stuff it into a hotel doorlock using a
4-bit processor, for example. However, for what it does work for, it
works very well; and trying to make it work better for some of the
current use cases, or for new use cases, at the expense of existing
use cases and interoperability does not seem wise.
Elliotte Rusty Harold
Effective XML (Addison-Wesley, 2003)