Home. 
.

transparent

transparent

transparent

Altova Mailing List Archives


Re: [xml-dev] SAX/Java Character Buffers (was Re: [xml-dev] SAXand parallel processing)

From: Uche Ogbuji <uche.ogbuji@-----------.--->
To: David Megginson <david.megginson@-----.--->
Date: 1/1/2005 9:35:00 PM
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@f...> 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


transparent
Print
Mail
Like It
Disclaimer
.

These Archives are provided for informational purposes only and have been generated directly from the Altova mailing list archive system and are comprised of the lists set forth on www.altova.com/list/index.html. Therefore, Altova does not warrant or guarantee the accuracy, reliability, completeness, usefulness, non-infringement of intellectual property rights, or quality of any content on the Altova Mailing List Archive(s), regardless of who originates that content. You expressly understand and agree that you bear all risks associated with using or relying on that content. Altova will not be liable or responsible in any way for any content posted including, but not limited to, any errors or omissions in content, or for any losses or damage of any kind incurred as a result of the use of or reliance on any content. This disclaimer and limitation on liability is in addition to the disclaimers and limitations contained in the Website Terms of Use and elsewhere on the site.

.
.

transparent

transparent