Ward & I talk over the EF Vote of No Confidence Document

The second part of Ward Bell & I’s conversation on ORM is up at the ALT.NET Podcast.  In this part we dive right into the vote of no confidence document that kicked up so (much more than was justified) fuss and racket about a month ago.

We recorded it a couple weeks back, and I’ve spent a little time thinking about the EF VoNC. At this point I’d say that:

  1. After looking more at it, EF v1 is actually worse than I thought it was

  2. No, I don’t regret signing and helping to write the no confidence thing.  I wish it had unfolded differently and I’m disappointed at the negativity around it, but I still think it was worth doing.  I still don’t think the wording of the document was very inflammatory, but I guess the idea of openly criticizing a Microsoft product is still taboo for big areas of the .Net community.  If nothing else, it’s actually sparked something of a real dialog between two or more camps of development that rarely communicate with each other
  3. What I’ve heard from EF v2 (Mr. Bellware goes to Redmond, Washington) sounds pretty good.  The EF team might have already been on the cleaner POCO path anyway.  I really wish they’d been a bit more transparent and upfront about that.  From all appearances, it’s always looked like the EF team was completely blowing off our original concerns about the usability of EF.  Anyway, here’s to hoping the EF team’s new openness and transparency leads to a better relationship from now on. 
  4. I think EF v2 sounds like it might be usable from my perspective, so would I recommend using EF v1 if you want all that EDM stuff and migrate to the POCO model in v2 later?  I’m going to make the sure to be controversial standpoint that it’ll be easier to start with NHibernate now and migrate to EF v2 later than it would be to start with EF v1.
  5. Regardless of what they do, I think the EF is unlikely to completely succeed.  The EF is getting yanked into way too many directions to make everybody happy.  Look at their fancy advisory council.  Some DDD guys, an Agile guru, a database weenie who wants to write all his code in T-SQL sprocs like it’s 1995, and an MDA guy.  How could one single tool make all of those different people happy without collapsing under its own complexity?  Oh, and tou think ALT.NET whines about the EF?  On a couple different occasions I’ve watched data centric guys yell at the EF team for perceived shortcomings in stored procedure support.  I couldn’t tell you the specifics of their complaints though, because I snoozed off as soon as I heard the words “stored procedure.”
  6. 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?

About Jeremy Miller

Jeremy is the Chief Software Architect at Dovetail Software, the coolest ISV in Austin. Jeremy began his IT career writing "Shadow IT" applications to automate his engineering documentation, then wandered into software development because it looked like more fun. Jeremy is the author of the open source StructureMap tool for Dependency Injection with .Net, StoryTeller for supercharged acceptance testing in .Net, and one of the principal developers behind FubuMVC. Jeremy's thoughts on all things software can be found at The Shade Tree Developer at http://codebetter.com/jeremymiller.
This entry was posted in Database and Persistence. Bookmark the permalink. Follow any comments here with the RSS feed for this post.
  • http://codebetter.com/blogs/jeremy.miller Jeremy D. Miller

    @Nagarajan,

    Hold on just a week. A team of guys is just about to announce a new open source project for our NH FI. You *will* see a release of it this year.

    It does not use Castle ActiveRecord in any way though.

  • NagarajanP

    Hi Jeremy,
    I heard your Podcast; in your talk you have mentioned that your team is using the Fluent Interface for NHibernate Mapping and ActiveRecord to Map property. Is it possible to create a small sample by using all the goodness and give as a download for people like us? It will help us greatly and guide us to move into right direct. Please…

    Regards,
    Nagarajan

  • http://http://agileconsulting.blogspot.com Jeff Anderson

    I think in M$ has a much stronger developer platform thanks to the ideas espoused by ALT.NET.

    Any smart company will take criticism, even badly worded criticism, and use it to better improve their product.

    While I am not that familiar with EF, I certainly wouldn’t consider any framework that does not allow me to support as much of a POCO/POJO approach as possible. And I am at a loss as to why the new framework being put it wouldn’t follow those principles.

  • http://codebetter.com/blogs/jeremy.miller Jeremy D. Miller

    @John,

    That’s a fine sentiment, but give me a little bit of credit. I’ve built systems in a waterfall process, with stored procedures, with data centric development, and with other O/R tools than NHibernate — and delivered working software with every single approach. That being said, I’ve achieved more or less efficiency with some tools and techniques. I have direct experience of pain and inefficiency with other tools that have the same design flaws as the EF in regards to intrusive infrastructure and large scale code generation.

    I’m not irritated at the EF because it’s not the ALT.NET way, I’m irritated because I think it violates basic software design principles.

  • John

    Jeremy M,
    Yes, EF being better than Nhibernate is a great thought. Just don’t make the mistake of thinking that the only way it could be better is if it does things the way alt.net thinks things should be done. That’s the trap I see you guys falling into sometimes, and it’s simply a wrong, narrow way of thinking.

    John

  • http://chadmyers.lostechies.com Chad Myers

    @ForSome

    It’s always the anonymous cowards, and never with any real argument other than to allege things and lob ad hominem attacks.

    How ’bout arguing the merits using your real name?

  • http://www.wisegeek.com/what-is-a-self-serving-bias.htm For some of the ALT.NET guys

    Read this so you understand how it might affect your judgement:

    http://www.wisegeek.com/what-is-a-self-serving-bias.htm
    http://en.wikipedia.org/wiki/Self-serving_bias

    I’m sure you won’t admit it to yourself just yet, but some of you have fallen into that pit…

  • http://codebetter.com/blogs/jeremy.miller Jeremy D. Miller

    @John,

    Here’s the issue with the EF though. You said that you’ve used NHibernate and run into trouble with various things. The first thing I’m going to tell you is to turn lazy loading off at the class level to avoid the annoyances you described with NHibernate, but the second is to consider this:

    Wouldn’t it be nice if the EF *were* better than NHibernate? The intrusiveness of EF v1 makes it markedly inferior IMHO, but what if we can actually push them to fix those problems. Wouldn’t you like an ORM tool that’s well documented, predictable to use, and doesn’t force extreme coupling between your domain model and the infrastructure the way EF v1 does? Wouldn’t that be kind of nice?

  • John

    To Jeremy Gray,
    Hmmm… following Microsoft blindly? I based a major application on Nhibernate, and it worked. I use Nunit instead of Microsoft’s solution. I don’t use datasets, I code using three-tiers, etc. I’m not blindly following MS, and I’m not a stupid coder.

    To quote you: “Shame on all of you. Please exit the industry at the earliest possible convenience.” Are you sure you’re not Scott Bellware in disguise?

    That’s a typical feeling. We must not know what else is out there. We must be dumb. We must not care. We must be blind followers of MS.

    HAS IT EVER OCCURED TO ANY ALT.NET PEOPLE THAT MAYBE SOME PEOPLE HAVE USED SOME OF THE IDEAS YOU GUYS EXPOUSE, AND SIMPLY FOUND THAT THEY WEREN’T EFFECTIVE?

    That’s heresy to y’all, isn’t it? Your attitude is always that you just need to lead us to the light? I’m not saying that there are situations where some of your methods are good. I would say there are those situations do exist. You don’t seem to think, on the other hand, that there are many situations where other ways are better. EF may not be for the alt.net guys, but that doesn’t mean that it won’t be a very effective tool for many others out there. You guys just show an amazing level of self-important thinking to imagine that you have the right to even put what Microsoft is creating up to a vote. Last time I checked, capitalism (and coding) isn’t a democracy. If you don’t like their stuff, stop trying to change them and just leave the scene.

    Ok, now that I’ve responded to Jeremy Gray, wow, I need to relax a little. Jeremy Miller, I read your blogs because I get good material from them, and I do learn things. You’re not a Scott Bellware. I just think it’s over-the-top with this whole no-confidence vote thing. It’s an attack on Microsoft disguised as a democratic process of some type. If you don’t like it, don’t use it. But don’t just the creators or the users.

    John

  • karl

    @Stephen:
    You should see a specialist about your narcolepsy. And a proctologist about that other problem…

  • http://codebetter.com/blogs/jeremy.miller Jeremy D. Miller

    @Stephen,

    But yet you obviously had to have read this entire post just to formulate your little response.

  • http://www.stephenforte.net Stephen "database weenie" Forte

    Your immaturity amuses me enough to comment, but I snoozed off as soon as I heard the words “alt.net.”

  • Jeremy Gray

    @John – “Alt.net is for purists, those who value perfection over practicality.” -> “Alt.net is for pragmatists, those who value maintainability over dogma.” There, fixed that for ya.

    “What I do care is that now I can create a model that can be used across my programming environment, my reporting solution, and other areas I don’t have a need for (yet)”

    Whoa there. How many times does it need to be proven that incredibly few (and usually only incredibly simplistic) scenarios even allow for a domain model to be used directly as a reporting model, not to mention that on top of that you are also choosing an unreleased tool based on satisfying “areas” that you “don’t” even “have a need for” “yet”!

    And to think that you’re the one calling alt.net’ers “purists” and implying that you are the practical one.

    As for your comment regarding marking things virtual, I think that the other Jeremy has covered that well enough already.

    As an aside: The real surprise for me in the aftermath of the vote of no confidence was the sheer number of people that are simply blind followers of everything that comes from the mouth of Microsoft. I had no idea that such myopia even still existed to the degree that it does, given the breadth and depth of alternatives out there, alternatives that any professional should at least investigate in order to stay abreast and at the top of their field. That so many of these people then took on considerably hypocritical arguments and went well out of their way to attack people for simply having an opposing viewpoint was (and continues to be, if the replies showing up on this post are any indicator) really quite disappointing. Shame on all of you. Please exit the industry at the earliest possible convenience.

  • http://www.blogcoward.com jdn

    @Jeremy

    I believe you about the ‘set-based’ thing. It sounds funny without knowing the background.

    LOL on the rest. Yes, the posts are old. They stated clearly what the case was. Further posts clearly stated that they were working on the Data-driven architecture stuff that their Enterprise Customers were asking them to work on for EF. I don’t see how further “hey guys, we still aren’t going to have POCO in v1″ posts would be helpful.

    From what they are saying early on about v2, I still don’t think they are doing it correctly, FWIW.

    As for the continued inability of a minority of alt.net people to accept that their opinions aren’t universally shared and so throw out things like ‘troll’ and ‘ a database weenie who wants to write all his code in T-SQL sprocs like it’s 1995′ and the like…it’s your blog.

    And as for considering myself Ombudsman, I’ll let the important people tweet about that.

    YMMV.

  • http://codebetter.com/blogs/jeremy.miller Jeremy D. Miller

    @jdn,

    Daniel Simmons made a post 15 months ago saying that, yeah, I get that POCO is important, then NOTHING. Absolutely NO PROGRESS SINCE THEN. NOTHING. SILENCE. NADA. The posts you linked to are OLD, jdn.

    And jdn, I get that you consider yourself the Ombudsman for ALT.NET, but do you ever have a real point? Are you just arguing for the sake of arguing? I can’t think of a single useful thing I’ve ever heard you say. Did you really get a Phd just to be a troll?

  • http://codebetter.com/blogs/jeremy.miller Jeremy D. Miller

    @jdn,

    “What is this ‘set-based algebra’ you speak of and how can I learn more?”

    Is an inside joke unrelated to the EF. A friend of ours works in a shop where the very bright but inexperienced developer literally recreated “the mysterys of set-based algebra” in C# code because the database didn’t do it right. You’ll have to trust me when I say that it’s funny.

  • http://codebetter.com/blogs/jeremy.miller Jeremy D. Miller

    @John,

    I’m calling FUD here on you.

    “Oh, on the other hand, I guess we could just all do everything with nhibernate, changing all of our properties to be overrideable, and working with objects that aren’t really our objects at all, but are generated proxy objects. Man, I can see the hypocrisy in calling for POCO when we have to deal with that kind of crap. Can anyone else?”

    You know you don’t actually have to do that with NHibernate anywhere you don’t need lazy loading, right?

    I spent about 30 minutes of the two podcasts making the argument why having that “purist” POCO thing has a real impact on my ability to do work. Ability to do work faster sounds like a pragmatic thing to me.

  • http://Bryan.ReynoldsLive.com Bryan Reynolds

    It’s a pattern used to enhance the love of all points of view.

  • Aidan

    “Ward Bell’s and my conversation”

    Just drop the other person and check how it sounds…

  • http://www.blogcoward.com jdn

    @Chad,

    I think it has something to do with tennis.

    jdn

  • http://chadmyers.lostechies.com Chad Myers

    What is this ‘set-based algebra’ you speak of and how can I learn more?

  • John

    Whew. It’s a good thing alt.net doesn’t decide what Microsoft does and doesn’t do.

    Alt.net is for purists, those who value perfection over practicality. EF is a practical framework, that, like everything else (except for alt.net work, of course), has tradeoffs. I don’t care that it’s not 100% pure POCO. What I do care is that now I can create a model that can be used across my programming environment, my reporting solution, and other areas I don’t have a need for (yet). This is an incredible vision Microsoft has, and I for one am glad they’re showing the initiative and insight to go forward with it.

    Oh, on the other hand, I guess we could just all do everything with nhibernate, changing all of our properties to be overrideable, and working with objects that aren’t really our objects at all, but are generated proxy objects. Man, I can see the hypocrisy in calling for POCO when we have to deal with that kind of crap. Can anyone else?

    Alt.net, how about whining a little less?

    John

  • http://www.blogcoward.com jdn

    “From all appearances, it’s always looked like the EF team was completely blowing off our original concerns about the usability of EF.”

    BS. As you yourself noted:

    http://codebetter.com/blogs/jeremy.miller/archive/2007/06/03/a-positive-development-in-regards-to-the-entity-framework.aspx

    Daniel Simmons posted about this:

    http://blogs.msdn.com/dsimmons/archive/2007/06/02/persistence-ignorance-ok-i-think-i-get-it-now.aspx

    and states explicitly that full POCO/PI support wouldn’t make v1 (and the IPOCO stuff just cheesed everyone off).

    What wasn’t clear about that?

  • http://flux88.com Ben Scheirman

    Thanks for that summary. We talked a bit about the VoNC at Houston’s 2nd ALT.NET Geek Dinner & it was perceived pretty negatively… though the audience isn’t really familiar with ORM (yet).

    NHibernate gives me what I need today, and I don’t question its direction. I just hope that people frustrated with EFv1 will not shun ORM forever from the bad taste they get.

  • http://www.peterRitchie.com/blog Peter Ritchie

    I think the very least–in terms of positive aspects–to come out of this is that the EF devs are now better developers. They’ve got a council with Eric Evans, Jimmy Nilsson, et all on it, they’ve had Greg and Scott come over with DDD and BDD training, etc…

    I think we’ve also seen the true stripes of many people as well…