Zope 3: A new frontier
Excuse the poor grammar and structure, I’m exhausted as I write this.
I’ve spent the weekend reading about Zope 3 and playing around with it a bit. There’s lots of things I’d like to get down but not knowing Z2/Plone/etc I’m not sure that sending this to zope3-dev is something I should do just yet.
Anyway, to summarise, Zope 3 is really a replacement for Zope 2 and CMF, it seems, though not the out-of-the-box products like Plone or CPS. It provides the separation of concerns that made CMF useful. The underlying code is very clean, almost too clean (it’s almost Java :-). Basically it’s a very high quality implementation of a lot of really useful software development layers.
Interestingly, some of the sentences from the Zope 3 Book could have been lifted straight from the InfoCMS manual stuff I wrote :-). They’ve got the whole define a form schema and generate as much as possible bit going on and writing content plug-ins is at least as simple as with InfoCMS, and has access to that much more power.
The problem is that they haven’t really got into the portal/portlets stuff yet. It’s possible that they’re willfully avoiding it for now, but this does make the thing much less useful for my purposes. My plan is to spend sometime later this week or next weekend looking into Plone and Archetypes and stuff, but until then I thought I’d just write down what I think a portal system needs to do.
- Allow portal page objects to be created in the ZMI
- Allow portlet objects to be created under portal pages, the portal page will then assemble content from its children
- Users and admins should be able to add, remove and re-order portlets with their instances of portal pages, no disk-based code or XML should be required for this process.
- Allow some “global” content to be accessed by portlets, for example a calendar like Plone’s
- Do all this in a way that freely allows content types from currently existing Z3 products, such as zwiki or zblog, to be used as portlets
#3 is really the essence of the thing. With 3 in place a relatively skilled user-but-non-developer (I’m thinking my colleague JC here) can log into the ZMI and build a site by assembling a page with a ZPT portlet and blog portlet here, adding a wiki here and writing some basic ZPT pages, e.g. a contact page. He can then hand that site to me, probably by zsyncing it to disk, and I can theme it by making a skin.
I could write this portal support code myself, but it would be a small-fry approach and wouldn’t have any of this workflow/metadata/cool stuff magic that (it sounds like) makes Plone so grrreat.
So, more reading required really. I might have to get in touch with Nuxeo, the guys behind CPS, who seem to be getting into Zope 3 and see what their roadmap looks like. This isn’t really Cohack’s major focus though, so to some extent I have to wait this one out.
I will definitely be investigating Plone next though. It’s going to be a bit of a shock having spent so much time looking at lovely lovely Z3 code, but I’m hoping that the upper levels of Plone will be a) almost as nice and b) all I really need to play with.