Lists Home |
Date Index |
So that Elliotte Rusty Harold won't have to toot his own horn, I am writing
this brief review of his newly announced XOM, the XML Object Model
(http://www.cafeconleche.org/XOM). As he says, it is "new XML object
model [that] is an open source (LGPL), tree-based API for processing
XML with Java that strives for correctness and simplicity."
It is in the same part of the design space as W3C DOM, JDOM, dom4j, etc. etc.
but with many improvements for ease of use.
What it really has, however, is the most important thing a software
architecture can have: conceptual integrity. As Fred Brooks said back
in 1975 in _The Mythical Man-Month_:
[C]onceptual integrity is *the* most important consideration
in system design. It is better to have a system omit certain
anomalous features and improvements, but to reflect one set of
design ideas, than to have one that contains many good but
independent and uncoordinated ideas. (ch. 4)
XOM satisfies this criterion eminently: it is the product of a single mind.
The result is that the architecture is systematic and unsurprising: the
features available are what one would expect (with a few delightful
innovations thrown in) and, more importantly, once the fundamental concepts
are grasped, everything behaves as it should.
(Disclaimer: I have not exercised the implementation yet, so I don't know about
Combined with the conceptual integrity of the architecture is a concern
for consistency in "Minute Particulars" (Wm. Blake) that makes this
particular API hit the sweet spot in Java-based tree XML APIs.
Naturally, something first released two days ago is not and cannot be
perfect. However, the Man With Three First Names is continuing to refine
the API (and the implementation) based on input from the xom-interest
mailing list (sign up at the site). He has said that XOM is a cathedral,
not a bazaar, but although he is the benevolent dictator, we are seeing
considerable concern for the needs and viewpoints of the list members,
always subject to his own vision.
I urge the xml-dev community to get involved. Java users should try XOM
for themselves; non-Java types may wish to recycle the architecture for
John Cowan firstname.lastname@example.org www.ccil.org/~cowan www.reutershealth.com
"If I have seen farther than others, it is because I am surrounded by dwarves."