I gave a presentation on the Zope Component Architecture (ZCA) at Europython 2010 last Tuesday. In my presentation, I wanted to explain the core concepts of the ZCA in a way I would have appreciated when I was trying to learn the platform a few months ago.
A few years ago, in the early 2000s, Zope 2 was a large, monolithic framework which had blazed a trail in the Python world. Being there so early, however, meant that they had to invent many wheels along the way. This lead to Zope being viewed as a world unto itself, which was a perhaps extreme but accurate description in many ways.
In 2003 the Zope community realised this and decided to break the platform down into small, reusable components as well as bringing Zope closer to the standard Python way of doing things. This was the path which lead to Zope 3, a rewrite of the platform which reached version 1.0 in 2006. The ZCA is one of the core pieces of Zope 3, and a great exemplar of the componentisation itself. In addition to being the glue which holds together the pieces of Zope when running as the Zope platform, the ZCA is a small, easy to use component of itself, outside of Zope.
In the talk I try to explain this, and provide some examples of how to use the library/component. I go over Interfaces, Utilities and Adaptors and the way the ZCA uses them to create a robust component platform, which I believe should be more widely understood in the Python world.