The “Stephen Forte Embraces the Impedance Mismatch” topic of my LINQ and Entity Framework Posts for 7/14/2008+ post quotes Steve’s Impedance Mismatch post of June 27, 2008, following the “ADO.NET Framework Vote of No Confidence” ruckus:
What I am saying (and have been saying for a long time) is that we should accept, no, embrace the impedance mismatch! While others are saying we should eradicate it, I say embrace it.
ORM tools should evolve to get closer to the database, not further away.
His post stated earlier:
My first problem with ORMs in general is that they force you into a "objects first" box. Design your application and then click a button and magically all the data modeling and data access code will work itself out.
I concluded: Steve’s dismissal of O/RM tools in general and adoption of a data-first stance in particular makes me wonder why he’s on the Data Programmability Group’s Advisory Council whose other members predominately advocate domain-driven design.
Updated 7/28/2008: See link to Justin Etheredge’s viewpoint at end of post. Also, see comments by Frans Bouma and Jeremy D. Miller.
Responses from the NHibernate Mafia
I was surprised by the lack of uproar about Steve’s controversial data-first doctrine until I read Sam Gentile’s He Couldn't Have Said it Better post of July 26, 2008, which quotes from Ayende Rahien’s Impedance Mismatch and System Evolution post of July 25, 2008:
Let me start by saying that I absolutely reject this statement:
[The] database model is going to support far more than your application
The database model is private to the application, and is never shared with the outside world. If you need to access to my data, here is the service URL, have fun reading from it.
Ayende also points to Greg Young’s detailed Impedance Mismatch Reframing post of July 24, 2008, which refutes most of Steve’s O/RM contentions. Greg says that “this debate has become quite heated through the community,” but I didn’t see much evidence of a controversy.
I missed Jeremy D. Miller’s Ward Bell & I talk over the EF Vote of No Confidence Document post of July 22, 2008. (Ward Bell is VP of product management at IdeaBlade. I quoted Ward on EF v1 topics in my “Data Dilemma” Cover Story for Redmond Developer News’ July 15 Issue post.) Jeremy refers to Steve as a “database weenie” and makes this final point about EF in his post:
ALT.NET gets a rap for bad behavior, but in the wake of the VoNC document, I thought the traditionalists (the TechEd/INETA/Regional Director types) behaved poorly as well. The kicker for me was Stephen Forte's crack that developers want ORM's because they're too stupid and lazy to learn set-based algebra, then says that he hopes "cooler heads" will prevail later in the exact same post. Um, rank hypocrisy anyone?
Jeremy has some faith in the forthcoming EF v2 but says, “it'll be easier to start with NHibernate now and migrate to EF v2 later than it would be to start with EF v1.” If ease is the criteria, I’d say his recommendation only applies to small projects implemented by current NHibernate experts.
Update 7/28/2008: Justin Etheredge’s The Data Disconnect post of July 27, 2008 suggests a data-centric approach with service-oriented architecture (SOA) when many applications share the same data. In this case, Justin concludes:
If you are looking at a database as the center of the application, with multiple applications hitting the same database, then an ORM solution would probably look less realistic for you. ORMs biggest advantages come into play when they are generating their own SQL (so as to avoid having to maintain separate stored procs) and when you let the database schema stay relatively simple and have the translation layer massage the data into the exact format you need. These goals can often conflict with the database-centric view of an application, which likes to keep more of this control inside the database.