[Dbix-class] Features comparison among ORMS?

Octavian Rasnita orasnita at gmail.com
Tue Nov 12 07:03:22 GMT 2013


Hi Rob,

From: "Rob Kinyon" <rob.kinyon at gmail.com>
> What sort of features are you looking for? All the Perl ORMs wrap DBI,
> so connecting to different databases isn't a problem. Among the Perl
> ORMs, only DBIx::Class has resultsets, arguably the most powerful ORM
> concept. (It's not just among Perl ORMs - I don't know of any other
> ORM that has resultsets.) All the ORMs you mentioned support the
> various relationships (belongs_to, has_many, has_one, and
> many_to_many).
> 
> In terms of speed benchmarks, those are mostly useless. 99% of the
> time spent within an ORM is actually time spent within the database.
> 90% of that speed is dependent on how badly you designed your tables.
> 
> That said, DBIx::Class provides prefetching, which can speed up very
> specific use-cases. (Again, something I've never seen in any other
> ORM.)
> 
> In general, the advice I'd give is:
> * If you're already using an ORM, use it (unless it's Class::DBI, in
> which case convert to DBIx::Class).
> * If you're using Catalyst, convert to DBIx::Class.
> * Otherwise, use DBIx::Class.
> 
> Does that help?
> 
> Rob
> 




Thank you for your answer, but I think I put a too general question.

I use DBIC and Catalyst for many years and I know what DBIC can do, but I can't compare it to other ORMS.

So I want to be able to compare it because everybody knows or heard about Hybernate, and most ORMs comparisons on the web are among many other ORMS than DBIC, and those benchmarks are pretty useless, I agree, but they are pretty good for promoting those ORMS.

So my problem is that if somebody asks me, I can't tell why DBIC is better than other ORMS, or with other words I don't know:
Which are the advantages of DBIC when it is compared with Hybernate, ActiveRecord, SQLAlchemy...?
and also which are its disadvantages... because it would be also helpful to know and be prepared to be told about them.

Without knowing these things, at least theoreticly (without really using all those ORMS), it is hard to promote DBIC and pretend that it is the best but almost nobody knows about it.

Perl 5 is considered ugly by most of the programmers, but it can be promoted by showing how powerful tools it offers when comparing it with other languages, and DBIC is an important tool. My target audience is not the Perl users group which surely know that DBIC is the best Perl ORM, but those who pretend that Java is better for some reasons, like the fact that it can use the best ORM - Hybernate, or that Python is the best because it can use SQLAlchemy, or that Ruby is great because it can use ActiveRecord...

This is why it could be helpful to be able to show that yes, those ORMS are great, but DBIC is better because it can do all what those ORMS can do, plus it has some very helpful  additional features like...

Octavian




More information about the DBIx-Class mailing list