[Python-3000] Path Reform: Get the ball rolling
Talin
talin at acm.org
Wed Nov 1 04:26:47 CET 2006
The thread on python-dev with respect to PEP 355 seems to have died out,
so I thought it might be a good time to move things over here.
What I'd like to do is to start by examining the most fundamental
assumptions about refactoring os.path and the various other path-related
functions. Before we even begin to write a new PEP, I want to at least
make sure that consensus is even possible - even though we may not all
be on the same page (to use a tired metaphor), we're at least reading
from the same book :)
Let me break this down into a number of questions:
1) Does os.path need to be refactored at all? I think most people agree
that os.path isn't perfect, but IMHO it isn't terrible either - you can
get work done with it, and its not really that hard to learn.
From my own experience, I've often run into cases where I overlooked
some critical feature of the standard library, and ended up looking
foolish after posting my question on the python mailing lists, only to
discover that the answer was there all along (kind of like Dorothy's red
slippers in that way.) But I've not yet had an occasion, as far as I can
recall, where the os.path module was the culprit.
2) Putting aside for the moment the issue of syntactic sugar,
convenience, code beauty, and ease of learning, is there anything that
the existing os.path *won't do* that we desperately need it to do?
3) Assuming that the answer to #1 is "yes", the next question is:
"evolution or revolution?" Do we want something that looks 95%, 80%, or
0% the same as the existing library? Is this just a case of moving
around a few stray functions, or is are we going to take and axe and
give os.path a reprogramming job it will never forget?
4) My third question is: Who are we going to steal our ideas from?
Boost, Java, C# and others - all are worthy of being the, ahem, target
of our inspiration. Or we have some alternative that's so cool that it
makes sense to "Think Different(ly)"?
5) Must there be one ring to rule them all? I suggested earlier that we
might have a "low-level" and a "high-level" API, one built on top of the
other. Is this a good idea, or a non-starter?
OK lets start with that and see what happens.
-- Talin
More information about the Python-3000
mailing list