It is not a war, not even a hot argument

From Kevin, the OR/M Wars:

Now there are is a lot of uproar at the moment from the NHibernate Mafia (as termed in DotNetRocks) slamming everything that isn't there WAY.

First, Richard & Carl, I believe the terms belongs to you - I am going to send a triple nested cursors with Cartesian products to your database as a revenge.

Second, I am rarely the kind of guy that would simply ignore something that he doesn't agree on. I don't think that there is any slamming involved in the discussions we are having, merely an opinionated argument, and I like those because they make me think.

Kevin's mentions that he evaluated NHibernate and Active Record, and he doesn't think that they will speed up development. I would like to know why, but that is a totally acceptable stand, especially when it is given from a position of someone that tried it.

The biggest thing that seems to set the NHibernate people off is using the database as anything more than a means for object persistence. What if I want to use the flash XML features or SQL 2k5? CLR types? If you have a big expensive database damn sure use it.

Give me a use case, and I'll give you an answer, you'll be surprised how much you can get out of an OR/M when you put your mind to it.

And yes, there will be cases when I will say, "that is a valid use case, use the DB directly for that".

Otherwise you could just have one table in the database and serialize out your objects to and from the db. That way you never have to worry about relational data or normalizing a database or tuning a database.

Not really a good approach, "Give me all the users registered last week" and see you next week.

What is really important, however, is this:

Now the thing that worries me most though seems to be the venom in the both some of the posts and some of the comments.

In general, I think that the discussion was being professional and educating. There were some incidents, but we are all friends now :-)

I don't like confrontational situations, they lead to violence and they I have to do paperwork, so I have a vested interest in keeping the discussion professional.

Print | posted on Thursday, June 07, 2007 8:22 AM

Feedback


Gravatar

# re: It is not a war, not even a hot argument 6/7/2007 11:42 AM Kevin Isom

Ayende,

Dang, I feel all special now. I got my own Ayende blog post. I Don't feel that NHibernate would speed up my development process simply because I tend to think DB a little more than I think Object. At my previous job my boss was a recovering DBA and I always had to justify it by the DB and I guess old habits die hard. However I have a couple of developer friends that I suggested using NHibernate and Active Record to because it worked better for their way of thinking.

The venom comment was most about the whole CAB thing...It just seemed that everybody got way to agro about it.

And Oh, the serializing the object to the db, that was only a joke.


Gravatar

# re: It is not a war, not even a hot argument 6/7/2007 11:56 AM Ayende Rahien

> serializing the object to the db, that was only a joke.

Don't joke, Ted Neward get a lot of mileage from telling about tools that do that, and there is an old Oracle FAQ that explains why you can't really do reporting over serialized java beans


Gravatar

# re: It is not a war, not even a hot argument 6/7/2007 5:24 PM Chris Chew

Ayende, what about full text searching?

Ck


Gravatar

# re: It is not a war, not even a hot argument 6/8/2007 8:01 PM Ayende Rahien

If I need to use the DB capabilities for full text search, then usually I will wrap it in an HQL function or a custom ICriterion , both very trivial to build.
I prefer to use the lucene integration to NHibernate, though.


Gravatar

# re: It is not a war, not even a hot argument 6/9/2007 12:55 AM Greg Young

"Otherwise you could just have one table in the database and serialize out your objects to and from the db. That way you never have to worry about relational data or normalizing a database or tuning a database."

There are some object databases which work in this way ... Reporting has long since been their downfall but they can be quite good so long as you follow object relations (and at the defining of simple indexes). For a transactional DB they can be great but you are pretty much assured that you will need a seperate relational reporting db ... then again I think we realize this is actually the case most of the time anyways (especially if using DDD)

Comments have been closed on this topic.