[Zope] Zpatterns / SmartObjects
ra@burningman.com
ra@burningman.com
Wed, 29 May 2002 14:15:35 -0700
Oliver Marx wrote:
> The ideas behind seems good.
They are, IMHO. Very good.
> But all development seems to have stopped in 2001!???
Sadly, yes... *sigh*
> Why is that?
I can't say for sure, but I have a couple of ideas...
First, the learning curve for understanding ZPatterns is very, very
steep. The learning curve for Zope itself is rather steep, but compared
to ZPatterns, Zope is completely transparent. There is a fair amount of
documentation, but it is not very organized, it's hard to find, and it's
very obtuse, due to the fact that it is littered with a great deal of
complicated nomenclature, none of which makes any sense until you
understand the rest of it. The aspiring ZPatterns developer is required
to deal with and grok terms such as Specialist, DataSkin, DataManager,
Rack, PlugIn, PlugInContainer, SkinScript, Sheet/AttributeProvider, and
the RIPP (i.e. "Racks, Implementors, PropertyHandlers, and Predicates")
design pattern. Since these ideas are all interrelated, usually the
learning process involves reading pages and pages of documentation
littered with all of these terms for weeks at a time, understanding very
little, until finally a gestalt occurs and the whole thing begins to
make sense. Very few folks have the patience that an undertaking like
this requires.
This seems to me to be the most likely reason that ZPatterns was not
widely adapted by the Zope developer community. Since a critical mass
of users never developed, investing the amount of time required to keep
the ZPatterns code base current with new versions of Zope probably
didn't seem worth it to the developers. This is a tragedy, in my eyes,
because I think that the value that ZPatterns brings to the table for
Zope application development far outweighs the time invested in learning
the system.
All is not lost, however... Philip Eby (ZPatterns creator) is currently
working on TransWarp (http://telecommunity.com/TransWarp/), which is, as
far as I can tell, a generalization of the ZPatterns ideas out of the
Zope framework and into Python itself. (ZPatterns is essentially
useless outside of Zope...) Since Zope3 will allow for much better
integration of non-Zope specific Python classes into its framework, it
is to be expected that the benefits of ZPatterns will eventually
resurface in some sort of Zope3/TransWarp-based set of tools. In the
meantime, however, folks who want to keep current with Zope and still
use ZPatterns (and possibly even LoginManager) are out of luck.
ZPatterns is not supported beyond the Zope 2.3 series. I, however, have
a tarball that integrates the ZedPatterns/TransactionAgents patches and
LoginManager, and it works quite well with an out-of-the-box 2.4.4 Zope.
(Unfortunately, it doesn't work w/ 2.5... and I don't have the time
to port it...) I haven't looked at the Zope licenses to see if
redistributing this would be allowed, but if anyone's interested in
getting their hands on it, send me an email off-list. If I get enough
responses (and the license allows) then I'll put a member page w/ the
tarball up on zope.org. I'd love to see ZPatterns get revived.
-r