It is easy to find people arguing about ORMs. There are even a lot of famous articles written on the subject. The one that comes to mind is called “The Vietnam of Computer Science“. My opinion is that almost all of these discussions are a waste of time. The reason is that there’s so many ORMs, nobody is ever on the same page when they make their arguments. Saying you dislike a ORMs is like saying you dislike food. There are so many flavors out there, you’re going to have to clarify. Do you mean you hate fusion food? American food? Etc. For example, I personally dislike EclipseLink and Hibernate. But, I’m not going to pretend my experience with these ORMs magically give me insight into working with Rails’ ActiveRecord or Python’s SQLAlchemy.
What ends up happening in these arguments is that people end up talking past each other because they don’t even realize they’re arguing about apples and oranges. One guy will say “I hate ORMs” because he disliked Hibernate. Then someone will reply, “No ORMs are great” because they liked ActiveRecord. Unfortunately, these two people think and act like they’re talking about the same ORM.
Really, I think the blog authors are to blame for this. They try one particular ORM, have a good/bad experience, then write an article as if they’re speaking for all ORMs. Usually they really only have experience with one. There are multiple reasons they do this:
- They don’t want to niche their audience. Most developers have used one, but a fraction of people have used the ORM the author has experience with. So the author expands the scope of their article to encompass all ORMs instead of the one they know. In other words, writing an article about “ORMs” instead of “Hibernate” is a form of clickbait.
- Most developers are very opinionated about ORMs and will gladly contribute and to talk about their war stories. It’s a good way to get a discussion going around an article you wrote.
As for the readers of ORM blog articles, has anyone out there used every ORM there is? I doubt it. Then maybe there’s one out there you haven’t tried that you’d end up loving. Or, maybe there’s one you’d end up hating. Some are good, some are bad. You have to know which ORM(s) you’re discussing before you can even have a conversation with someone and be on the same page. That’s why articles that give their opinions on all ORMs are a waste of time.