Week in review
First of all, kudos to Alan Green for at least posting a literate rewriting of his initial ‘Too Many EJBs’ spewage. The rewrite is a lot more coherent, and makes a number of reasonable points as well as being wrong in other places. Overall the content is no longer offensively ignorant.
Kudos also to Bob McWhirter of the Werken Company, who took my bashing of his poor workflow API in stride, and even had the honesty to agree with it. What a nice guy.
There were some bad apples though. Carlos Perez vomits up his usual pompous, pretentious, tedious, and conceited tripe. This time in the form of EJB bashing. A number of people have already responded, pointing out how wrong he is. Yes Carlos, the spec doesn’t mandate a lot of things, but many appservers provide these features as standard. Yes Carlos, there are other tools that have always done this, the point is that in J2EE, it’s a SPECIFICATION. This means that in theory, you can write code and have a good chance of having it run on another vendor’s product (no, it won’t be effortless, yes, you will have to write custom descriptors and spend some time and effort testing/checking it). Will you next mock JMS because it also is not innovative for you? After all, MQSeries and Tibco have existed for as long as you’ve been alive almost. I wouldn’t be surprised if poor Carlos is unemployed. Anyone who takes themselves so seriously and writes so tritely must be hellish to work with.
Finally, the dumbest quote of the week was by none other than Jason Carreira, who gleefully proclaimed ‘Inheritance is expensive and often painful. Avoid it unless it’s necessary‘ in a comment to my entry advocating compile time safety. I realise I’m pasting without context, but the comment sounds so hilarious and makes him look so foolish that it’s hard not to burst out laughing at the follies of man.
July 20th, 2003 at 3:09 pm
Wow. I’m speechless. I never thought I could make it to this pinnacle in my professional career! I’ve been biled! And to think, with all of the undoubtedly stupid things I’ve said, Hani chooses something I think is common sense. Go figure.
First, I’d like to thank the Gang of Four for the wonderful Delegation Pattern, which shows us a better way, in many cases, for reusing implementations without subclassing. Also, along these lines, I’d like to thank Joshua Bloch, who, in his book “Effective Java Programming Language Guide”, lists his point #14- “Favor composition over inheritance”. In this section he says “Unlike method invocation, inheritance breaks encapsulation”. He discusses the dangers of overriding methods and the lack of implementation encapsulation often caused by inheritance. He goes on to discuss these and other dangers more fully in items 15 and 16 (”Design and document for inheritance or else prohibit it” and “Prefer interfaces to abstract classes”). It’s an excellent read, I suggest it for everyone (Hani). In addition to Mr. Bloch, I’ll throw out a general “Thank You” to all of the numerous OOP writers/thinkers who have also pointed out the dangers of inheritance and the limited uses it should be put to.
As a concrete anti-pattern, I’d like to thank the Struts project for pointing out how expensive and painful requiring inheritance can be with their abstract base classes from which all code which uses the framework must subclass. Without them, whom would I have to point to in situations like this and laugh heartily? :-)
Finally, I’d like to thank Hani. Just think, if he read or believed in OO principles, this wouldn’t be possible! I’m still trying to figure out how he programs, since the two things I’ve been able to determine he believes in are inheritance and EJBs, which don’t exactly play nicely with each other. Oh, well, anyway, thanks again Hani!
July 20th, 2003 at 10:32 pm
Jason,
Wonderful retort:
“I’m still trying to figure out how he programs, since the two things I’ve been able to determine he believes in are inheritance and EJBs, which don’t exactly play nicely with each other.”
Couldn’t have said it better myself!
Now I wonder, why Hani is incapable of making specific arguments. Alan wrote a very detailed argument and all Hani could say was that it was better written. However, he’s pretty vague on what’s right and what’s wrong. Lately, he’s been critiqing writing style… is he a tech writer?
Regarding EJB, could you be specific as to what I was wrong about? Sorry to disappoint you, but I don’t have a beef against JMS, in fact MDBs are possibly one of the more useful additions to J2EE. If you didn’t notice, I’m a big fan of asynchronous architectures. The big difference is JMS is inherently extremely useful while EJB honestly is worse than any technology its trying to replace.
Yeah, I admit, my material tends to be extremely boring. Sensationalism isn’t really my style, however it still trumps your stuff on a daily basis.
Finally, what’s with the below the belt comment about being “unemployed”?
Carlos
July 22nd, 2003 at 6:03 am
@jason
wow, what a nice bilereturn, decorated with real world facts. I doubt anyone will trash your comment, because its hard to attack one of the most important books in the Java community written my Mr. Bloch.