[python-uk] Turbogears

Doug Winter doug at isotoma.com
Thu Jan 26 11:00:30 CET 2006


Peter Bengtsson wrote:
> I've read your blog and your replies here with great interest.
> The points you make about understanding and progress are very interesting.
> No wonder [some] people think Zope sucks because Acquisition is so
> difficult to grok; but now after having understood its power I feel
> this is one of Zope's best feature. The reason I didn't give up was
> because I had a friend whom I trusted that I persist. If it wasn't for
> him I would probably have avoided zope quite early.

Hi Peter - I knew someone would defend Zope, should have guessed it 
would be you :)

I don't think difficulty of grokking is the problem with Acquisition 
really.  I think it's a good attempt at solving a real problem that 
ultimately creates more problems than it solves.  The problem 
acquisition tries to solve is a real issue - how do you provide 
"context" in a web application?

Zope satisfies these requirements using Acquisition.  My problem with it 
is that it is too promiscuous - your namespace ends up massively 
polluted, leading to name collision between multiple products.

I spend a lot of my time working with Zope and this leads to real issues 
- only yesterday I had two products that had coincidentally named a 
method the same (one as a method one as a PythonScript) leading to 
bizarre failures when one acquired the other's version of the method.

Ultimately I think Acquisition is a Glorious Failure - it was a brave 
attempt to solve a difficult problem, but it just doesn't scale.  Zope 
Corp have realised this, and Zope 3 is fundamentally different, using 
Adaptation instead of Acquisition to provide a mechanism for object 
location.

> I'm wondering Doug, what's your take on zope3 vs. TG?

Zope 3 looks very good - they've fundamentally addressed the core 
architectural problems in Zope 2.  I seriously dislike the XML 
configuration files, which might seem like a minor point but it really 
gets on my nerves.

Zope 3 has a head start on the other frameworks like TG, in that there 
is a large body of existing code (such as CMF) which can be ported to it 
from Zope 2.  Lots of that code is very crufty and horrible though, so 
how much of an advantage that is depends a lot on the extent of any 
rewriting that goes on I guess.

TG is going to be using RuleDispatch instead of Adaptation, which is 
going to be really interesting.  I have no idea how well that's going to 
pan out in actual use.

There have been a lot of complaints about the diversity of web solutions 
for Python, as opposed to Ruby where there is just the one, as if 
somehow it was a bad thing.  It may be confusing for newcomers, but I 
can't honestly believe that the genetic diversity of solutions, all able 
to take the best of each other's ideas, can be anything other than a 
very good thing.

Cheers,

Doug.

-- 
doug at isotoma.com   / Isotoma, Open Source Software Consulting
Tel: 020 7620 1446 / Mobile: 07879 423002 / Fax: 020 79006980
Skype: dougwinter  / http://www.isotoma.com
Lincoln House, 75 Westminster Bridge Road, London, SE1 7HS


More information about the python-uk mailing list