[
Lists Home |
Date Index |
Thread Index
]
On Sat, 2005-01-01 at 15:51 -0500, David Megginson wrote:
> On Sat, 01 Jan 2005 13:29:18 -0700, Uche Ogbuji
> <Uche.Ogbuji@fourthought.com> wrote:
>
> [about SAX/Java character events providing an offset into an array
> rather than a test/string object]
>
> > I know the original SAX idea was optimization, but I do think this is
> > exactly one of those areas where perhaps (IMO) premature optimization
> > ends up limiting design evolution, and I also think that it interferes
> > with the "Simple" part.
>
> That was a tough choice at the time. I think it was James Clark who
> suggested it -- he is justly famous for fast code, but as anyone who
> ever tried to work with SP (his C++ SGML parsing library) can attest,
> he's not famous for readable code. Here are the pros and cons with
> the benefit of six or so years of hindsight:
[SNIP]
> I'm not sure what I would do, even if I were starting fresh. A good
> API should stay out of people's way, and SAX was always meant to be
> low-level. I had assumed that most developers would use fancy
> toolkits on top, like the original SAXON, which provided friendlier
> events, element stacks, etc.; instead, almost everyone went straight
> to the basic API. XML developers always seem to like to stay close to
> the metal.
Yeah. I can certainly sympathize with the trade-off. I guess I'm
mostly reacting to my own shock. I really hadn't thought clearly in
years about how fundamentally different beasts the original SAX is from
how it was re-specified for Python. In my recollection of the marathon
discussions that led to Python/SAX, there was little or no controversy
about imposing a clean object hand-off between driver and handler. It
was just the Pythonic way of doing things.
I think this probably explains the confusion you alluded to, and
probably the fact that Miles Sabin and I were talking to each other
exactly like people from opposite sides of The Looking Glass.
--
Uche Ogbuji Fourthought, Inc.
http://uche.ogbuji.net http://4Suite.org http://fourthought.com
Use CSS to display XML - http://www.ibm.com/developerworks/edu/x-dw-x-xmlcss-i.html
Full XML Indexes with Gnosis - http://www.xml.com/pub/a/2004/12/08/py-xml.html
Be humble, not imperial (in design) - http://www.adtmag.com/article.asp?id=10286
UBL 1.0 - http://www-106.ibm.com/developerworks/xml/library/x-think28.html
Use Universal Feed Parser to tame RSS - http://www.ibm.com/developerworks/xml/library/x-tipufp.html
Default and error handling in XSLT lookup tables - http://www.ibm.com/developerworks/xml/library/x-tiplook.html
A survey of XML standards - http://www-106.ibm.com/developerworks/xml/library/x-stand4/
The State of Python-XML in 2004 - http://www.xml.com/pub/a/2004/10/13/py-xml.html
|