[ZPatterns] The future of ZPatterns and LoginManager

Johan Carlsson [Torped] johanc@torped.se
Wed, 13 Mar 2002 09:41:26 +0100


At 10:41 2002-03-12 -0500, you wrote:


Thanks Phillip,
Interesting reading.
TransWarp really is looks interesting although I haven't
had a look at it in quite a while.

Thanks,
Johan Carlsson


>At 06:00 PM 3/7/02 +0100, Johan Carlsson [Torped] wrote:
>
>>Hi all,
>>I finally got the opportunity to use ZPatterns in a project
>>and am quite please with the result (after the mandatory wrestling :)
>>
>>Anyway, I would like to use both ZPatterns again as well as LoginManager,
>>but I feel somewhat of a doubt what they will be around in the future and 
>>in Zope 3.
>
>That doubt is accurate.  See http://telecommunity.com/TW/IPC9Talk.htm for 
>details.
>
>
>
>>So, are they?
>
>ZPatterns is not truly supported by me for Zope versions past 2.3.  That's 
>because the few production apps I have using it are still on Zope 
>2.3.  The community (Steve Alexander, mostly) has contributed patches for 
>2.4 and 2.5, but all I've done is incorporate some of them into CVS; I've 
>been reluctant to release new versions that I can't really support.
>
>
>>Or what I really want to know, is it safe to base my applications on 
>>ZP/LM or is it
>>something I'm going to regret?
>
>AFAIK, many people are still using ZPatterns, as it is still a pretty good 
>platform for Zope 2.x versions.  We have found, however, that it does not 
>do well with applications that have very complex domain<->datamodel 
>interactions and triggers.  For example, our largest ZPatterns app -- the 
>one that made us realize we needed to do something differently -- is an 
>equipment inventory system that tracks history of where things have been, 
>and automatically changes items' status as they are moved around, etc., 
>for hierarchical combinations of equipment.  (E.g. hard drives in 
>computer, hard drives move when computer moves, change status when 
>computer changes status, events logged showing when it is put into or 
>taken out of the computer, etc.)
>
>This involves a *lot* of SkinScript and associated routines.  Ty was able 
>to throw together this engineering marvel using ZPatterns in just a couple 
>of months, but the maintenance has been a nightmare ever 
>since.  ZPatterns' implementation is just too complex, and too 
>implicit.  It has the same failings, in a sense, as Zope 2, and goes 
>against the Zen of Python.  (Notably "Explicit is better than implicit", 
>and "if the implementation is hard to explain, it's probably a bad idea.")
>
>Changes to the application have been a lot harder than we thought they 
>would be, as it is altogether too easy to break something in the tightly 
>coupled and carefully balanced house of cards known as "triggers"...
>
>The *idea* of ZPatterns, in the sense of what's there, how you organize 
>apps, etc., have all been proved valid, I believe, by the people who've 
>used it and by our own experiences with it.  The *implementation* of 
>ZPatterns, as a Zope 2-based and through-the-web development tool, 
>however, is flawed.  Some of the flaws are driven by Zope 
>2's  shortcomings, but others are due to me personally having more Zope 
>Zen than Python Zen.
>
>I have learned my lesson, however.  TransWarp is about as Pythonic as I 
>can make it, and it is not dependent on Zope or a through-the-web 
>development paradigm, though it should be quite usable with ZPublisher 2 
>or Zope 3, and it should be adaptable to through-the-web use for component 
>instantiation.
>
>Check out TransWarp Central at http://telecommunity.com/TransWarp/ for 
>more information about TransWarp, which will offer a ZPatterns alternative 
>for Zope 3.