Ayende @ Rahien

Unnatural acts on source code

Sam Gentile is angry with me

Probably because he has a point. He took issue with my statement about the CAB, being too complex for the job it is supposed to do. Perhaps the thing that I regert the most is that I don't have truly constructive criticism to offer in this subject. I can understand why "I don't think that this is good" can be seen as offensive.

Before I respond to Sam's post, I would like to mention that I do believe that we can have a reasonable discussion without attacking each other, even if I decide to offer criticism. I would admit that not offering a constructive criticism is a problem in this case, but I don't have anything valuable to suggest about improving the product at this time.

In addition to that: I don't like personal attack in response for a technological discussion, and I really wish that the discussion would not stoop to that.

Now, to the part where I try to answer Sam's points. This is addressed specifically to Sam.

Frankly, I am personally tired of hearing all the things you can build in an 1/2 hour Ayende. Why do you constantly have to show how smart you are or your worth?

I am sadden to hear that. I have some snippy remarks to this, but I would try to refrain from that. I would like to mention two things. I do believe that I am not talking empty words. The second is that while Israel and the US may have superficially similar cultures, there are many changes between both culture. Oh, and I am also narcissistic & opinionated jerk.

 I could write framework too but I choose to write business value functionality that my business REALLY WANTS instead.

Sigh, why do people assume that I don't deliver business value to my customers? If I wanted to sit in an ivory tower and write frameworks, I could do it. I am pretty sure that I could get paid for it. I hadn't any complaint from any of my customers (or my boss) about using work-time for doing frameworks-in-the-sky.

Why did you pick NHibernate? Shouldn't you write an O/RM in a week as well?

A bare bone OR/M implementation takes about a day to write, Fowler has the basis in PoEA. If that was all an OR/M had to offer, I wouldn't really bother with an existing one. You can check here to find what are the basic requirements for an OR/M. I estimated that as three months for me + 2 good developers to get to a version that other people could start developing on. Of course, that is a fairly rough estimate, so it may take more.

...these kind of posts don't endear you to me or others as they seem quite elitist and seem to advocate "you choose my way or you're dumb" mentality. If you want me (and others) to keep reading, maybe you might want to think about this.

I am sorry if this is the way it came out. I am using this blog as a way to express my thoughts about software and development, not as a way to put down other people. I would try to give it some thought, but I would request the same from you.

Its not worth bothering [with the CAB]? I understand DI and UI patterns and I chose it and bothered with it. What I thought at first was heavyweight is pretty suited to the tasks we have put it towards it. Its pretty testable to us, with 1900+ unit tests in our system, a major chunk of which is in the Presentation area. CAB certainly does Model-View-Controller or Model-View-Presenter straight away and we split into  Supervising Controller and Passive View. We actually don't find CAB that hard anymore and we are able to add UI logic in Iterations fairly quickly (We are on a one week Iteration system).

Again, it is not the patterns that I am objecting to, and I think that the CAB has some good ideas in it. I am delighted to hear that you have been successful in implementing a CAB-based solution, and that it has worked for you.

Nevertheless, "We actually don't find CAB that hard anymore" - that is after over a year of working with it, right? I would say that it would have to be hard to use after that period of time. Incidently, this is not the only reference for about a year to get the CAB.

If you feel that your invensment in the CAB had been worth it, go celebrate it in a pub. I feel differently about the applicability of CAB to my projects, for the reasons that I have already specified, and I have yet to hear something that would change my mind or would actually address the question.

You already know why they can't use OSS stuff in a codebase that could jepordize products like SQL Server.

Ha? I fail to see the connection between the CAB and SQL Server, sorry. You would have to use hand puppets to get that throught for me.

Comments

Frans Bouma
05/26/2007 08:57 AM by
Frans Bouma

I found it sad he took it personal. Don't worry about it, I think he'll turn around. He also did that after he took it personal that some people (among them, myself) said that refactoring was never 'free' (as in beer).

It makes the discussion go a different direction it shouldn't have gone into, which is sad, but the fact that there was/is a discussion proofs that you might have a point :). I talked to one of the entlib developers last week, and also told him a couple of the blocks were simply overengineered. He said he did agree with the point that some elements weren't that easy to get into.

I never understood why people would use the entlib in the first place, but alas...

Adi
05/26/2007 10:36 AM by
Adi

Frans, There are good reasons for using Entlib, same as NHibernate and every framework. To each his own:

http://dotmad.blogspot.com/2007/05/caution-this-blog-contains-personal.html

Sam A Gentile
05/26/2007 11:13 AM by
Sam A Gentile

Frans,

I explained myself in a comment to a later post (there seems to be a multitude of posts) and said my comments were meant to address implications that there was a piece of software that was developed in a vacum that produced a bloated, overengineered piece of software and my post was meant to say that those things were false as it was not developed BDUF and was developed in iterative feedback loops.

There is nothing for me to turn around Frans. I didn't take it as a personal inditement of what I did. I would do it again. Just because Ayende doesn't like something doesn't mean that 1) he is right or 2) that anyone else is wrong. As I said in the other post (I hate having to reply 4 places), you look at your schedule and all that busines value, and you look at your teams skillsets. If they don't mtach up with either producing something like a framework or even growing one organically, you look to "buy". Is CAB pefect? no way. Is it overengineered? Probably. But if you look at all the things its doing for you (and you need) in a complex Windows Forms application, I argue that it is not only useful but saves a lot of work.

Frans Bouma
05/26/2007 02:13 PM by
Frans Bouma

Sam,

Still, the post did sound to me like you were personally offended. If you don't like someone's posting style or way the person formulates arguments ("I could do this in 24hours")... so be it, but in the end the only thing which matters is the pack of arguments used to make a point, not the packaging of the arguments.

When I look some parts of the entlib, I really don't see easy to use software. That may be my interpretation but that's how I see it. I then can understand if someone steps up a soapbox and says "This is overengineered crap!" and adding to that a remark that what MATTERS in the particular part can be written in much smaller set of classes.

OF COURSE that person thinks he's right. You also think you're right when you post something and, shocking, I'm also convinced I'm right when I post something. :) If someone else has a distinct opinion which is orthogonal to the one expressed at the soapbox, it of course implies that different opinion is wrong, at least from the POV of the guy on the soapbox.

You fell over ayende's remarks that he could write it in x hours. I always find that remarks about "I can do that much faster and easier and in much less time!" pretty funny and laugh about it. Everyone knows these remarks aren't real, they're IMHO more or less a way to express "It's not hard to do and won't take a lot of time".

Though you should ask yourself this: WHY can't a normal developer start with any of the entlib parts and be productive in say, an hour ? Why does it take a LONG time to get skilled up in the various ellements of entlib? It's not as if doing validation etc. is rocket science.

Sam Gentile
05/26/2007 04:29 PM by
Sam Gentile

I notice you keep saying EntLib when I never mentioned EntLib once. Are you unable to stay on point?

Ayende Rahien
05/26/2007 04:47 PM by
Ayende Rahien

Sam,

My previous posting talked about the EntLib in particular, and the CAB was mentioned in mostly passing.

Pete w
05/26/2007 05:04 PM by
Pete w

[I don't like personal attack in response for a technological discussion, and I really wish that the discussion would not stoop to that.]

^^^^

hahahahah

you just defined one of the fundamental reasons I dont maintain a blog.

how does that fench saying go? to be happy, be hidden or something like that... certainly not an american saying but Im not very american anyways ;)

dont get me wrong I appreciate all of the information you share, but these kinds of things happen when

a) you are high profile

b)youve got strong opinions

both you and sam fall under the above properties.

Travis Laborde
05/29/2007 11:48 AM by
Travis Laborde

LOL! Let's just start with this quote of Sam's:

"Frankly, I am personally tired of hearing all the things you can build in an 1/2 hour Ayende. Why do you constantly have to show how smart you are or your worth?"

This, from the guy that introduces himself to total strangers as "Hi, I'm Sam Gentile. I'm an MVP."

I'm not even gonna touch the arguments at hand, as I'm sure that both Sam and Ayende are beyond me in "leet skillz" but...

Then, we got comments from Frans Bouma? OMG. The things I've seen him post in the past... Wasn't he the guy calling Scott Guthrie ignorant when he endorsed stored procedures? Maybe my memory if failing me...

Anyway, I figure all we need now is for Robert McLaws to post and have everyone attack him and this post will be complete.

Comments have been closed on this topic.