I then began to fool with various ORMs (DBIx::DataModel, DBIx::Skinny,
DBIx::Class, Fey::ORM), but the only one I found intuitive was
Rose::DB::Object.
But, I would like to ease the pain of people surveying various ORMs by
providing all the sample databases, etc for them.
But now that I think about it, maybe it's best that they go through the
same pains I did so they can get an idea of each system from the ground up.
The great things about Rose::DB::Object are:
-- expressive query language. very sql-esque. very easy to switch
between inner and left joins
-- pre-generated accessors for common things like counting
-- 2 classes for each database entity: one for singular actions, another
for multi-row actions. This is the one thing that kept tripping me up on
the other ORMs. I was never sure whether the methods were returning
resultsets or row objects and oftentimes they would do either in a
fashion that I did not find obvious.
I keep hearing this, but I have yet to work on a nontrivial project where the
speed of the ORM's accessors was more important than the speed of the DB it was
accessing, so it always rings a bit false to me.
hdp.
Maybe one optimizes joins better or something? Better caching? Hm.
--Brock
Benchmarks, including the ones linked to earlier in the thread, are usually
things like "insert 10000 rows" -- simple DB operations in what's effectively a
tight loop in Perl. RDBO has lots of inlined code, so it's optimized for that
kind of thing. From where I'm standing, though, it's indistinguishable from
"copy and pasted", and not very appealing.
(Neither RDBO nor DBIC has caching by default, and none of the benchmarks I've
seen have been anywhere near complex enough to test things like SQL join
optimization.)
hdp.