in reply to
Why did DBIC overtake CDBI?
I haven't used DBIC myself, but I've used CDBI for several projects, and had a look at the docs for DBIC (plus some of my colleagues have used it).
AFAICT, DBIC seems to be superiour. Besides the fact that it's actively maintained by some of the key people in the Perl community, it offers several features that were difficult to achieve using CDBI.
One of the most important of those is the ability to select across criteria from multiple tables (i.e. joining on other tables, and returning objects based on a certain criteria across all those tables). In CDBI you are limited to the table your object maps to, unless you roll your own.
DBIC also has full support for many to many relationships, which seems fairly fundamental to me. In fact, I think the limitations in CDBI are due not to the fact that the no one's gotten around to implementing them, but because its design makes implementing these things extremely difficult. (I have to admit, having had only a cursory look at the CDBI code, I'm basically speculating here).
Although you didn't ask about it, one of the main limitations in HTML::Template in working with ORM's is that you can't pass it an object directly (I think HTML::Template::Plugin::Dot gets around this, but I haven't tried it).
Of course, Catalyst doesn't prevent you in using any of these systems. If it did, I'm sure it wouldn't be as successful as it has been.