Pissed Off By Vanatec OpenAccess

time to read 5 min | 939 words

I was mentoring NHibernate today, and I run into this advertisement when doing a search on Google about NHibernate:

Stop Hibernating.
Start real O/R Mapping.
- using Visual Studio. Read why!

I clicked on the link, intrigued that I wasted so much time using a fantasy OR/M. I'm a sucker for Real Programmer Tools & Practices, so I couldn't help myself.

I will not get into whatever it is moral to buy adwords on someone's else products, there is another advertisement that targets NHibernate and I don't like it either (it goes "Hate NHibernate?", etc...), but I don't like dishing other people stuff just to make your own looks good. The reason that I'm so pissed off by this advertisement is that it leads to a page that is full of FUD and outright lies.

It wouldn't be so bad that if those lies weren't so freaking big! I'm going to tick them off:

  • Persistance By Reachability - They claim that if you add a transient object to a persistent object, you need to explicitly save it to database. I'll ignore the completely wrong call on the site for now, but this is completely bollocks. It is a very useful technique, and I'm using it in many projects that are making a use of NHibernate.
  • Reverse Mapping - They make a funny claim about being innovative by allowing you to turn an database schema into an object model. I guess they haven't heard about code generation. I guess I'm dreaming about those NHibernate Templates for CodeSmith, GenWise and MyGeneration, which where the first 3 results in a trivial google search.
  • Disconnected Data - They make the claim that you can't worked in a disconnected fashion with NHibernate. I guess all that time I learned about Session Per Conversation has gone to waste, then. Strange that the Disconnect() method doesn't throw NotImplementException, though, isn't it?
  • Just map it - They claim that you can just ignore the database, since their tool is good for the common cases, but flexible enough for the advanced users. I'm not familiar with their tool, but I'm really surprised that I need to "know all the database stuff that you wanted to get rid off". I guess I really should stufy for that DBA certification tests, then... Strangely enough, I found that I usually don't even think about the database when I'm working with NHibernate, but I guess that I'm just strange that way.
  • Tools and GUI - They actually have somewhat of a point here. There are several GUIs for NHibernate, I wrote one of them, so I should know. Most of the time, the XSD intellisense is enough, and I don't really mess a lot with NHibernate configuration enough to need a tool to help me (and I consider myself an advanced user there). Strangely enough, though, although I really like the command line, I can't seem to recall that I has to do somethign with NHibernate from the command line, as they claim.
  • Query Language - They use OQL, and they seem to be angry about N/Hibernate choosing to use HQL. I'm not familiar with the design decisions that led to the decision of developing their own deriative, but I find the language easy to understand and easy to work with. Out of spite, I'll mention that using their tools, this wouldn't work: sum(amount * 2).
  • .Net 2.0 Generics & Nullables - They claim that they supports it, and NHibernate doesn't. Nullables were supported by NHibernate for over a year, including on the 1.1 framework. I myself added generic support to NHibernate. But I guess that this doen't really exists.
  • Database Flexibility and Independence - This really pisses me off. Talk about blatant lies. They make the claim that they are much more flexible and support more databased than NHibernate.
    What they support: SQL Server 2000 / 2005, Oracle 9/10, MySQL 5 - Ignoring version differences, that is 3 databased.
    What NHibernate Supports: DB2, Firebird, SQL Server 2000 / 2005, MySQL (3? ) / 4 /5, Oracle, PostgreSQL, SQLite, Sysbase, Access
    Yes, I guess that NHibernate is so much less flexible than their product.

This page is full of lies and its sole intent is to spread FUD. I am sorry that thier product cannot stand on its own without resorting to baseless mud throwing on their competitors. The only thing this page good for is to annoy me and show just how low they are willing to go.
This hardly inspire confidence in their ability to meet their promises.