I've re-added the zope list here. (For context, in comparing writing products in Python or with ZClasses, Anthony pointed out that integrating outside resources [modules, files, net-based resources], Python is much easier.) ----- Original Message ----- From: "Anthony Baxter" <anthony@interlink.com.au> To: "Kevin Dangoor" <kid@kendermedia.com> Sent: Tuesday, May 09, 2000 9:59 AM Subject: Re: [Zope] Comments? To create products with Python or with ZClasses
"Kevin Dangoor" wrote Good points. The hybrid approach (ZClasses with Python base classes)
will
certainly allow you to add methods (through the base class) that do whatever you wish. Doing too much of that will end up giving you the worst of both models, though.
I'd actually mention that in the discussion - I've worked with ZClass, Python, and ZClass-with-python-bases, and the third is far and away the worst of the lot (assuming more than a trivial base class).
If you're going to do the hybrid thing, make seperate Products, and make the ZClass one include instances of the Python one when it's created. That way you can debug and manipulate them seperately. The ZClass based on Python class thing is one of those things that _seems_ neat, but it ends up causing considerable pain.
Thanks for the tip. Thinking about it now, I can see how it could certainly be a pain to debug if your Python base class gets too complex.
BTW, I didn't think of the external connectivity issue because I haven't needed to do it myself with my apps. But, I agree that this is something many people would want to do. I added a paragraph in the flexibility section about this.
A large amount of what I do in Zope is integration - plugging together databases, computers, email/voicemail systems, credit card processors, and all sorts of other unpleasantness. Zope could do with some work in this respect - being able to reload a Python Product, for one (but that's a Hard Problem - just doing a python reload() call isn't sufficient.)
Hm, this probably could go back onto the zope or zope-dev lists...
And now it is :) Kevin