[Zope] Zopache = ZTK + Grok + ZMI

Christopher Lozinski lozinski at freerecruiting.com
Thu Jul 31 06:33:30 CEST 2014


On 7/30/14, 10:50 PM, Fernando Martins wrote:
> I don't know about ZTK, Grok. 
Well let me start of by describing them, and some history, so that we
are all on the page.  At the risk of overloading the term, so that we
share the same context.

First there was Zope 2.  It was pretty cool for its time.  Lots of
people jumped on board, and created many products.  That is when the
trouble started.
If Zope 2 did not meet the needs of the product developers, it was
monkey patched.  Meaning people would replace a python method at
run-time.  This was fine until two products would monkey patch the same
method.  This caused trouble.  Something better was needed.

So they moved to the Zope Comjponent Architecture (ZCA).  Really they
should have called it the python component architecture.  Huge marketing
error.
ZCA manages adaptors.  An adaptor is a small python object that points
to the original object.  The adaptor can have the new needed method on
it.  All other methods are dispatched to the original object.  If two
users of the same object want to replace the same method, they just use
two different adaptors. 

So Zope 3 was born.  It had a nice ZMI, but no acquisition, and this
weird registration stuff.  Worse yet file system development in Zope 3
with ZCML registrations was just too painful.  And the security was way
too tight.  Everything was forbidden until explicitly permitted. 

So along came Grok.  Without going into detail it made it quite
reasonable to do file system development.  And it simplified security. 
Everything is possible, unless forbidden.  Much closer to what I want.

So that was progress.  But it was still too complicated.  And there were
too many circular dependencies.  And there is a huge community who did
not like the ZMI, and so they split Zope 3 into two parts.  Zope.* and
zope.app.*  The later had all the GUI stuff.  The zope.* part without
the GUI they called ZTK. 

Okay so that tells you what ZTK and Grok are.  Back to your application.


On 7/30/14, 10:50 PM, Fernando Martins wrote:
> (I use my own security roles in the database) . 

Well that is very interesting.  One of my biggest complaints about Zope
2 was the security model.  Security was on the instances.   Not possible
to just make security declarations on the classes, without having to
also declare it on the instances.   So I am hugely curious about your
security model.    The grok security model, while better than ZTK, still
leaves a lot to be desired.  Fortunately it is quite easy to replace. 



On 7/30/14, 10:50 PM, Fernando Martins wrote:
> although most likely my application will have to be ported to tomcat
> (using jython) in the short term. 

Why tomcat?  I would think that there would be many native python web
servers you could use.  Have you considered Pyramid. 
It also uses the ZODB and traversal.  










More information about the Zope mailing list