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

Matt S Trout dbix-class at trout.me.uk
Wed May 23 17:54:23 GMT 2007


On Wed, May 23, 2007 at 11:22:40AM -0400, John Siracusa wrote:
> 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.

I should have known you'd have implemented them sensibly; I'm just too used
to everybody else not doing so :)

> 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.

I consider Moose method modifiers triggers by another name in a lot of ways,
and also with zero performance hit.

> 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."

That's absolutely true - to be honest, the only time I've been annoyed about
somebody choosing RDBO was when a couple of people stated they'd done so due
to the attitude of new DBIC users on the CDBI list (a number of whom I ran
down in private e-mail and slapped for that attitude). There are plenty of
technical/philosophical reasons for choosing one or the other; making the
choice because they didn't like the attitude of a couple people I'd never
spoken to in my life irritated me a little.

> 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 ;)

Hell yes, and I think we've stolen enough code off each other and used each
other ('each other' here being the projects, not you and I) as targets to
work against enough times that overall progress in the state of the art has
probably been furthered at least as much by both existing as it would have
been by the same developer effort level on a single project.

-- 
      Matt S Trout       Need help with your Catalyst or DBIx::Class project?
   Technical Director    Want a managed development or deployment platform?
 Shadowcat Systems Ltd.  Contact mst (at) shadowcatsystems.co.uk for a quote
http://chainsawblues.vox.com/             http://www.shadowcatsystems.co.uk/ 



More information about the Catalyst mailing list