|
|
/ Hathaway Weblog / Zope 3 a la carte |
I've mentioned before that I'm looking for opportunities to integrate Python into my current work. Last month, a problem presented itself that screamed for a clean high-level language. We're building a cluster of servers running custom applications, and all those computers need central control. After we combined a few thousand lines of Python code, ZODB, Twisted, wxPython, and SimpleTAL, we had a pretty stable system. The nasty problem of managing a couple hundred nodes suddenly became the least of our worries.
However, in putting this system together, I took some shortcuts. I bypassed access control, invented a simplistic web object publisher, and made up a way of separating model and presentation. My quick hacks seemed fine until I tried to add new functionality; with each new feature I had to also revise the framework to pass more information. Sometimes I just added more hacks instead. This can't go on for long.
Zope 3 solves these problems. Actually, Zope 2 does too, but in a way that's much harder to explain. Whatever I come up with, it has to be easy to explain because I'm probably the only person with "Python Powered" T-shirts in a sea of Java developers. I've sold them Python on the basis that it makes complex things simpler, so a few near me are keenly interested in Python, but if I have to explain too much, the "simpler" story will lose credibility.
I don't think it would be a win to rebuild the software on the complete Zope 3 framework, since our start time would fall significantly, the documentation for this system would have to explain a great deal of Zope, and we would be blown about by Zope 3's active development.
So I've decided I need to learn how to use Zope 3 a la carte". We only need a few pieces like the publisher, component architecture, ZCML, and page templates. I think a lot of people need the same thing. So for the edification of myself and anyone else who may benefit, I'm going to find out how to use pieces of Zope 3 outside the framework and publish what I learn. Wish me luck!
