[Zope3-dev] Re: The vision thing

Martin Aspeli optilude at gmx.net
Sun Mar 5 11:34:02 EST 2006


> - Non-technical users who just want to crank our a web application
>    with little muss and fuss.  This was the original focus of Zope 2
>    and now Plone

I think this is better served by applications on top of Zope, rather than  
trying to make the framework sit that close to the user. Like you said,  
Plone + its toolchain (Archetypes, ArchGenXML etc.) serve this purpose to  
a certain extent, at least. I think that although we'd all like  
"non-technical people" to be able to build "technically advanced  
applications", it basically degenerates down to the problem that if you  
want to let these people express themselves as richly as Python or another  
programming language allows, they'll have to learn something with the same  
degree of complexity as Python or another programming language anyway. :)

Plone + Archetypes + ArchGenXML is about a limited problem domain. You  
want a CMS-like thing, you want to create some content types with minimal  
fuzz, you want to be able to skin a bit. That's proven to be a set of  
tasks that we've reduced in complexty until a larger group of people can  
accomplish something without understanding the whole stack. Perhaps  
different applications in different problem domains can achieve the same  
thing.

I don't think it's good for a framework/appserver to try to solve all such  
cases across all problem domains, because the tradeoffs you have to make  
start getting awkward. To a certain extent, this is what happened with  
Zope 2. TTW scripts, and security models for these, and ZClassses (what  
were they, again...) and all kinds of other mechanisms that ultimately led  
to sacrifices in the cleanliness of the underlying framework and server.

> - People who know what an app server is and know they need one.
>    People who know they need to reuse applications and need tools
>    to customise them. People who know they need rich servcies, like
>    security, transactions, etc.  These are the people for whom Zope 3
>    was written.

Which I think is a good audience. Zope (2+CMF and 3, but perhaps 3 even  
more so) has proven to be a very good way of re-using elements of software  
(e.g. re-using skin elements in Zope 2+CMF, and to a deeper extent in Zope  
3), and of getting going quickly. The Zope 3 CA is a really nice  
architecture that makes it fun to write software, and Zope is good at  
taking care of teh grunt (security, transactions, authentication) that I  
don't want to take care of. In fact, I build applications on top of Plone,  
because Plone lets Zope do those things, and Plone takes care of  
consistency of UI, usability and a certain degree of integration that I  
also don't want to concern myself with.

> - People who want straightforward tools for developing small to moderate
>    complexity sites in Python.  I don't think we are servving this  
> audience
>    well.

Probably not. Separating out some of the lower level CA stuff (I still  
like Jeff's Zope 3 CA vs. Zope 3 AS idea; call it ZFC or Zed or whatever)  
will make this easier for a certain class of people. However, I think it's  
also possible that Django/TurboGears/Rails will remain good at one thing  
(possibly lighter/smaller and/or more relational-database-driven  
applications), that J2EE and .ENT will remain good at another thing  
(large, enterprise-level installations with needs to integrate with other  
more established technologies), and Zope can sit happily in the middle.

> Then there are more fragmented audiences, like people who want a dirt
> simple way to create applications based on relational databases.

Again, Django/TurboGears/Rails are good at this, and I'm not sure it's  
necessary for Zope to be able to sell itself on this point. Zope can sell  
itself on the point that it makes a lot of other things easy (e.g. using  
non-relational storages like the ZODB, transactions, authentication, etc.)  
and still has the ability to talk to relational databases with similar ORM  
concepts to what these tools use (maybe we're not quite there yet, but I  
think we should), as opposed to saying this particular thing is something  
Zope is better at than all others.

> My main point is that we need to consider each of these audiences, as
> they have separate concerns.  We need to be explicit about this and
> have messages and technical solutions tailored to each audience.

Do we? Messages, perhaps, but we should also remember that Zope  
*shouldn't* be all things to all people (because we'll fail miserably at  
that). It should allow the most flexibility, but at the end of the day,  
users will make a decision based on the trade-off between what Zope is  
naturally good at and what it can be made to do with some work.

Martin


-- 
(muted)



More information about the Zope3-dev mailing list