ORM comparison suggestion (was Re: [CDBI] Class::DBI vs DBIx::Class)

William Ross will at spanner.org
Tue Feb 28 13:20:34 GMT 2006

On 28 Feb 2006, at 00:15, Tim Bunce wrote:

> On Tue, Jan 17, 2006 at 10:04:41AM +0000, Tim Bunce wrote:
>> On Tue, Jan 17, 2006 at 01:18:20AM +0000, Matt S Trout wrote:
>>> On Tue, Jan 17, 2006 at 10:59:34AM +1030, David Lloyd wrote:
>>>> DBIx::Class claims it's better than Class::DBI but I'm not sure  
>>>> why and
>>>> haven't found a place that gives a reasonable comparison - does  
>>>> anyone
>>>> know of one?
>>> Siracusa and I worked out one for DBIx::Class vs. Rose::DB::Object -
>>> http://lists.rawmode.org/pipermail/catalyst/2005-December/ 
>>> 003183.html
>>> although it's a little out of date. Also it's probably worth  
>>> looking at
>>> http://www.spanner.org/lists/cdbi/2005/07/25/b9f7cc4c.html
>>> which appears to be as much of an archive of the original  
>>> announce thread as
>>> I can easily find.
>>> If nobody's going to kill me for advocacy I'd be happy to work  
>>> with the
>>> list on one - maybe if we aggregate them together we can sort out  
>>> a joint
>>> "ORM comparison guide" between the three communities or similar.
>> I think that would be a very good idea. The current confusion isn't
>> good for anyone.
> Any news?

Not from me :)

But I have been thinking about this, and I'd like to suggest that we  
devise a yardstick, in the form of a simple and useful application  
that would provide:

* a fixed reference point for comparing different approaches. Eg  
'with cdbi this part is done for you, whereas with Rose you have to  
specify it in code, but as a result it's cleaner and you save this  
many queries', or whatever.

* a practical tutorial for people new to ORM or to a particular package

* a source of real-world benchmarks

* a platform on which to place practical documentation and how-to guides

* a way of structuring the problem space so that it is easy to  
express questions and answers in a generic way (like, but more  
extensive than, the Class::DBI docs' usefully consistent references  
to albums and artists and so on)

* a cargo-friendly starting point for small applications...

* ...and an encapsulation of relevant best practice

* a basis for platform and package evangelism

* a useful way of looking at migration between ORM solutions

* golfing fun for all the family

The obvious candidate is a wiki package, and let's face it, there  
aren't enough of those[1]. So I would like to suggest a simple and  
nicely reflexive plan:

1. rebuild the poop-group guide to ORM as a set of wiki pages

2. use that wiki, with some version control, to specify a standard  
set of pages and tools

3. challenge each aspiring ORM package to implement that wiki in the  
simplest, clearest, most useful way it can.

Wouldn't it be very instructive to see the same basic app written in  
Class::DBI, simplified by Maypole and Catalyst, made faster and  
cleaner in dbixc and then different but the same in Rose, Tangram and  
other versions? And if it's possible to write a complete wiki in 4  
lines[2], this needn't be too onerous a task.

I don't mind hosting or co-ordinating in whatever way is required,  
though there are many people who would do it much better.


by the way, this:

>>> http://www.spanner.org/lists/cdbi/2005/07/25/b9f7cc4c.html
>>> which appears to be as much of an archive of the original  
>>> announce thread as
>>> I can easily find.

while snippy, is correct. I've kept that archive going so that people  
can combine the old and new mailing lists into a single search (and  
so that I can play with mariachi a bit), and that link will drop you  
into the middle of the 'easy way out' thread that brought the old  
mailing list to an end. I really don't want to encourage people to  
dig up old animosities, though, and I wouldn't recommend that  
particular thread as a starting point unless you're writing a book  
about the importance of careful good manners in open source projects  



[1] i wish i didn't dislike smilies so much.
[2] http://c2.com/cgi/wiki?ShortestWikiContest
[3] see [1]

More information about the ClassDBI mailing list