Prompted by recent brief negative pronunciations by Malthe on the
Zope Component Architecture (ZCA), I thought I'd talk a bit about what
I think about it. I'm not going to go into hermeneutics here of what
Malthe might mean -- others attempts at exegesis exist in the comments
to that blog entry already. Instead, I'll just talk about what I think
makes the ZCA useful, and why it is successful. Finally I'll go into
some reasons why people are frustrated by the ZCA.
What is the ZCA used for? It's used to glue things to each other: glue
event handlers to events, glue views to models, glue plugins into
applications and libraries, and more abstractly, glue adapters to
adaptees. In ZCA terms, providing such glue is termed providing
configuration.
Why was the ZCA created? The Zope community had been building
pluggable web applications for a long time and we noticed our
components became overly complex and were hard to glue together and
override. The ZCA is one answer to this problem.
The ZCA is implemented by zope.component. It's a library for gl