The framework I'm starting to learn supports 2 ORMs out of the box. I don't think it matters for the purposes of this question to say which 2 ORMs. My question is more general than this. How do you in general decide which ORM to go with? I haven't used an ORM before, but I'm guessing there's a list of must-haves that any decent ORM must have, then there's a list of nice-to-have and so on.
An ORM is just like any other software package. You'll need to compare multiple things, it's not all about what it can and can't. Let's think about:
- Features
- Documentation
- Development progress
- Speed
- How is the code
- Community
- Support
Your priorities can be different than mine. Do you require a future-proof production-stable product? Or do you want something more cutting edge?
The first question should be whether your application requires an ORM, not what features the ORM provides. If your app needs an ORM, pick the one that suits your application, not the one that is the most feature-packed. If you dont believe in ActiveRecord, you dont pick the ORM that is based on that pattern, regardless of features.
For an overview of object-relational patterns have a look at Fowler's PoEAA:
An ORM implementing most of the object-relational patterns could tentatively be considered decent, but like I said, if you don't need that, you don't need that.