[Zope3-dev] Re: [Zope3-checkins] CVS: Zope3/src/zope/app/browser/services - add_svc_config.pt:1.2 useconfiguration.pt:1.2 useconfiguration.py:1.2 configure.zcml:1.21 service.py:1.7 add_service_1.pt:NONE add_service_2.pt:NONE

Shane Hathaway shane@zope.com
Tue, 04 Mar 2003 16:11:33 -0500


Jeffrey P Shell wrote:
> On Monday, March 3, 2003, at 06:41  PM, Tres Seaver wrote:
>>   - What benefit is there in using a seemingly different namespace
>>     for those directives here?  Wouldn't clarity be better served
>>     by making 'browser:page' the normative spelling everywhere?  I
>>     realize that expat has no problem with a different default
>>     namespace, but humans have to parse ZCML too, and changing
>>     the default makes them work harder than they should need to.
>>     Doesn't the same objection obtain here as to the Python,
>>     'from some_module import *'?
> 
> 
> I agree.  I was just looking at another piece of ZCML in the traversal 
> package and it took me a while to figure out that all of the elements in 
> the file were out of a different namespace than I was used to.  As such, 
> it took a lot longer to grok than I would have liked.  This is the bit 
> about namespaces and XML that I've hated - while examples of XML with 
> namespaces use full names and look all nice and neat, too many shortcuts 
> happen in reality and the whole "human AND machine readable" aspect of 
> XML goes out the window.  It's not always the case, but (for example) 
> I've yet to be able to understand any XML generated by a Microsoft product.

I'd like you to confirm or deny this assertion: the problem isn't in the 
ability to assign a URI to a different prefix (or no prefix) in 
different files; the problem is that we're exercising this ability too 
liberally.  We ought to use the same prefix wherever a given namespace 
is used, except when we hit a rare clash with another prefix. 
Keystrokes are secondary to readability.

IMHO a closer Python analogue is "import sys as python".  That would be 
awfully confusing, but Python doesn't prevent it except by convention.

Shane