What do you tink of a package named "z"? (was Re: [ZODB-Dev] Re: Python module namespace pollution)

Jim Fulton jim at zope.com
Wed Apr 21 12:05:11 EDT 2004


Chris McDonough wrote:
> On Tue, 2004-04-20 at 05:57, Jim Fulton wrote:
> 
>>2. I want to try out the "z" name on a wider audience. We want people to find
>>    lots of Zope software usable outside of Zope. And I'm wondering if the use
>>    of a name like "z" for a container package would affect someone's decision
>>    about whether or not to use something in the package. I understand John's
>>    reaction to the "z". Claiming a single letter is a bit bold. But as I
>>    said in my other note, the leter "z" is already closely associated with Zope
>>    in the Python community and it seems very unlikely that someone else would
>>    want to use it.  (It's far less likely that someone would name a module
>>    "z" than it is that someone would name a module "persistent" or "transaction".
> 
> 
> One reason that Zope 2 is opaque to a lot of people is because it's not
> always clear where the dependencies between packages are supposed to
> align.  I think that it's more important to spread the word that Zope
> 3's constituent packages, whether or not they are rooted in a common
> namespace and whatever the name of that namespace is, should be (are?)
> as much as possible usable independently from the rest of the stuff that
> resides in/along with that namespace.  This is more important than the
> name of the namespace, I think.

Sure.

> I think the fact that we want them to all reside in a common namespace
> is for purely technical reasons: we don't want name conflicts with the
> stdlib or 3rd party packages.  The danger of the common namespace is
> unclear dependencies: it's easy to assume that everything in "z" is
> allowed to depend implicitly on everything else that might be in "z". 
> Hopefully Fred's dependency work in the package tools makes this
> explicit, but it's still a valid risk I think.

It's a valid risk, but:

- The README.txt file in the zope package goes out of it's way to
   say that, except for app, the packages there should be usable outside of
   Zope and should have mimimal interdepencencies.

- As you point out, fred's work will introduce dependency files that
   document and *constrain* dependencies.  They will help to make
   explicit and enforce and conntrol the dependencies amoung packages.

> I wonder if it would be reasonable to try to have several top-level
> namespaces (as opposed to just a single monster namespace) to make
> thinking about dependency groups a bit easier?  For example, maybe there
> should be a top-level "zodb" namespace that contains all the packages
> that fall into the dependency graph of the packages that would be needed
> to run ZODB independently from Zope?

I think dependencies are a poor basis for organizing the package structure.
Dependencies are too dynamic. Changing a dependency should not force a
change in the package structure, I think this would provide too much package
structure.

> Admittedly this has no real technical benefit,

And even do harm. :)

 > as it would be just as
> valid to put the package into "zope.zodb", but it might have a positive
> social impact, as I wonder if people could more easily mentally
> disambiguate zope and zodb if the zodb package name wasn't always
> referenced via "zope.zodb" or "z.zodb".

I'm very hopeful and fairly confident that the dependency files
will have the same social benefit without unduly affecting package
structure.

Jim

-- 
Jim Fulton           mailto:jim at zope.com       Python Powered!
CTO                  (540) 361-1714            http://www.python.org
Zope Corporation     http://www.zope.com       http://www.zope.org



More information about the ZODB-Dev mailing list