[Zope3-dev] How does Zope.Configuration work?

Jim Fulton jim@zope.com
Sat, 23 Mar 2002 01:09:06 -0500


Guido van Rossum wrote:
> 
> > Guido van Rossum wrote:
> > > But as we were working on our little jobboard app this week, we had to
> > > write a lot of config code that was needed purely to get our app
> > > working, and any changes the site admin would make to them would
> > > either have no effect or break the app.  Examples: the various
> > > <browser:view .../> declarations are essential for tying the
> > > components of the app together, and its components are designed to
> > > work together exactly in the way they are tied together.
> >
> > If your app is designed nicely, I should be able to look at your
> > interfaces, and from them, make my own browser views of your components,
> > and use my site.zml file (for example) to override your product's
> > defaults so that my own view is used.
> >
> > Such a change should *not* break the application. If it does, I suggest
> > there is too much coupling between your content component and your views.
> >
> > Steve Alexander
> 
> That level of flexibility is nice sometimes, but not always.

I think that users of Zope have given pretty clear guidence that that
level of flexibility is pretty much always needed. Extensability is 
critical to Zope 3 specifically because people want to change things, 
especially the views. But people often want to add other functionality.
Furthermore, it's extremely hard to predict what parts people are
going to want to replace. A system that makes it easy to add, remove,
and delete components is really important.

> Python lets you create small one-file scripts as well as big apps
> consisting of multiple nested packages.  If, in order to write a
> simple script, you had to create a package and a module and a main
> function and an argument parser and so on, Python would never be
> popular.  I am disappointed that Zope makes much infrastructure
> mandatory.  The "hello world" of Zope3 is still too big.

I'm pretty sure that making "hello world" easy is *not* a goal of 
Zope, unless you count adding a page that says "hello world" from the
content-management interface.

Zope is not a programming language. Zope is a framework for
building web applications and has goals that go beyond simple scripts.
Being able to combine software from multiple sources is really important
for Zope.

Jim

--
Jim Fulton           mailto:jim@zope.com       Python Powered!        
CTO                  (888) 344-4332            http://www.python.org  
Zope Corporation     http://www.zope.com       http://www.zope.org