Martijn Boland
recently blogged about his first adventures with a new contract using EF. He compares notes with the original
Vote of No Confidence and realizes the fears from back then were right on the money. The thing that totally blows me away is one of the comments to his post:
EF might not have tons of features, but from what I’ve read lately,
performance is not one of its weaknesses, specially when compared to
NHibernate, am I missing something?
Here we go again... I heard NH doesn't perform well, so I'll pick EF.
My statement is: C# doesn't perform well, so pick C. Wait, no... let's go with assembler. Write your own compiler for better performance. And don't forget to bitshift when multiplying or dividing by 2. Cheek in tongue of course... or is it the other way around? ;-)
Seriously now. Don't talk about performance as if it were the holy grail of development. It's not. Think about other
equally important things: maintainability, total cost of ownership, readability, effort, time to market... If you were to ask a customer which of these values are most important to him, do you really think
performance will be the big winner?
Sometime yes. Like in big number crunching batch operations, real-time life monitoring systems or 3D gaming. And you'd be right assuming NH doesn't perform well enough for these scenario's. But let's face it. Most application don't have these critical 1ms per transaction performance requirements. Other aspects have to be taken into account with an equal amount of importance.
This performance argument is really getting boring.