Acceptance of XML in the Python Community.notes

Friday, March 25, 2005

TITLE OF PAPER: Acceptance of XML in the Python Community
URL OF PRESENTATION: --not available--
PRESENTED BY:
Fred L Drake, Jr.
REPRESENTING: Zope Corp

CONFERENCE: PyCon 2005
DATE: March 25, 2005
LOCATION: Marvin Theater
--------------------------------------------------------------------------

REAL-TIME NOTES / ANNOTATIONS OF THE PAPER:
{If you've contributed, add your name, e-mail & URL at the bottom}

[Started VERY late]

xml support
    every majoor modern language has it

It's in XML so i's kind of ugly.
Very True
    he's right, it can be very ugly
        but often just moderately ugly
        but it can also be useful
    We do have tools to work with it
        standard library for simple things
        third-party libraries for everything else
    (api hasn't changed, leaves me to believe we haven't finished

Phillip Eby blogged about it
(can't find exact reference; had some very  unkind things to say about xml)

PJE doesnt like XML
    maybe I justn't read blogs
        ook, I normally don't
        but phillip's a smart guy
    considers XML truly vile
        it does have a few warts
    (sometimes we have to use XML, despite what phillip says, lots of legacy behind it)
    
It's not just phillip
    we don't make it easy enough
    which libraries do I need to use, there's a ton of them
    multiple implementations that implement different subsets: dom, sax, ...
    These are not beautiful APIs.
    Not everything uses them.
    Not everything implements exctly the same

So what's the problem?
    Pythonistas don't like alphabet soup
    There are too many spearate specifications
        it's har d to know which apply sometimes
        but that's not python's fault
    Tools are hard to choose
        few that support several specifications
        Little documentation
        Lots of disagreement about the API

What's wrong with our tools?
    Too many sijmilar models
        w3c DOM, ElementTree, libxml2 DOM
        SAX, libxml2 SAX
        (at leasst xmllib is dead; sorry Sjoerd!)
    APIs don't feel Pythonic
        Many were adopted from JAVA
        (and feels too JAVA-y, don't feel like we've adapted them well in Python)
    Too little documentation
        "But we're programmers, not writers!"
        Get over it already.
        (I've made libxml2 work, but it was in spite of the documentation)

What about ElementTree
    it's not Java
    
Buit it's even more basic...
    We can't even decide about how to represent characters
        some packages use Unicode
        Some use UTF-8
    We can't decide about namespaces
        some use (namespaceURI,localName)
        Others use '{namespaceURI}localname'

What's wrong with that?
    Choose what's best for each application (good)
    Use the representation we like to use (good, kinda)
    Might not be able to choose both:
        We take what the libraries we choose give us
        We use the models from libraries that implement the right part of the alphabet
        So maybe we ...


We need an API

For Example ... character data
    It should be possible
    
    
    ...structure nodes
        All DOMs need them, W3C or not
        Some aspects are common
        
...attribute collections
    needed by many APIs
    
But we're geeks
    we can't decide on just one


Let's be practical
    Sometimes diffeerent models are necessary



http://www.python.org/moin/XmlApiDiscussion

We've got to start fixing this problem.






--------------------------------------------------------------------------
REFERENCES: {as documents / sites are referenced add them below}

--------------------------------------------------------------------------
QUOTES:


--------------------------------------------------------------------------
CONTRIBUTORS: {add your name, e-mail address and URL below}

Chris Shenton <chris@shenton.org>
Daniel Krech <eikeon@eikeon.com>

--------------------------------------------------------------------------
E-MAIL BOUNCEBACK: {add your e-mail address separated by commas }



--------------------------------------------------------------------------
NOTES ON / KEY TO THIS TEMPLATE:

A headline (like a field in a database) will be CAPITALISED

    This differentiates from the text that follows
A variable that you can change will be surrounded by _underscores_
    Spaces in variables are also replaced with under_scores
    This allows people to select the whole variable with a simple double-click
A tool-tip is lower case and surrounded by {curly brackets / parentheses}
    These supply helpful contextual information.

--------------------------------------------------------------------------
Copyright shared between all the participants unless otherwise stated...