[EuroPython] What the heck does "pythonic" mean?

Stephan Richter stephan.richter at tufts.edu
Wed Apr 13 14:55:31 CEST 2005


On Wednesday 13 April 2005 07:34, Michael Hudson wrote:
> That something like ZCML is necessary to deploy large systems I'm not
> prepared to dispute, but that it (seems to be?  currently?) is
> necessary to do even toy development with zope 3 is a serious turn
> off.
>
> When I got to the point in the Zope 3 Book where it says "simply type
> these 70 lines of XML into browser/configure.zcml" I might have thrown
> it out of the window if I wasn't reading it in PDF :):)

Once you will develop longer with Zope 3 you will understand the reasons 
better. Once you do configuration in Python it becomes *much* harder to 
exchange components and being able to switch out components is considered 
very pythonic. ;-) So you have to decide which one the lesser evil is. On the 
other hand, Jim has gradually worked on simplifying the usage of ZCML.

> Shane Hathaway put it very neatly in:
>
>     http://hathawaymix.org/Weblog/2005-01-26
>
> (especially his comment).

But Shane was disputed by two people, Jim and Gary, intensively working on and 
with Zope 3. You should consider their points carefully. Also note that Jim 
is working on a new Bobo with which you will be able to write applications 
much like Shane suggested; but it is a simplification and does not cover all 
our use cases.

ZCML allows Python code to be simple. That means of course that ZCML will have 
a lot of the complexity that used to be in Python. If we make ZCML simpler, 
we will simply shift complexity back to Python. I guess eventually we will 
find the right balance between the two. Personally, I have always argued that 
ZCML helps people understand on what's going on. I can just look at the 
interfaces and the ZCML and I can see exactly how the frameworks fit and work 
together.

Regards,
Stephan
-- 
Stephan Richter
CBU Physics & Chemistry (B.S.) / Tufts Physics (Ph.D. student)
Web2k - Web Software Design, Development and Training


More information about the EuroPython mailing list