[Catalyst] DBIC/RDBO comparison (excuse new thread)

John Siracusa siracusa at mindspring.com
Wed May 23 16:22:40 GMT 2007


On 5/22/07 4:17 PM, Matt S Trout wrote:
> * In addition to inflate/deflate, column triggers can also be applied
> to get/set (user data) and load/save (to/from database) events.
> 
> -- DBIC has always allowed this via subclassing, triggers are just a
> performance hit you don't need.

The way RDBO implements triggers, there is zero overhead if you do not use
them on a particular column.  And I'd wager that even when they're in use,
their overhead is comparable to that of a C3 method call.

This is another one of those matters of taste.  The functionality is
similar, but the approach to providing it is different.  People tend to have
strong preferences about how features are exposed, sometimes even more so
than whether they exist or not.

Finally, I'll add the all the qualifiers in Matt's message ("pretty much",
"not exactly", "no, but", "largely works", "basically handles this") are one
of the reasons that I've heard cited by RDBO users for their preference.
DBIC is a much more dynamic project with features in many different states
of development simultaneously.  This is the traditional OSS development
model, and it is a strength of DBIC in many ways.  But some people prefer
the more staid, predictable march of RDBO development, where features tend
to be released fully-formed or not at all.  The gap between "pretty much"
and "yes, completely, with full documentation" is quite wide for many
"regular users."

I think it's good that both DBIC and RDBO exist.  TMTOWTDI and all that.
And if Rails has taught us anything, it's that having a Single, Official ORM
does not necessarily lead to higher quality or more features or any other
great benefit ;)

-John





More information about the Catalyst mailing list