So far today I've received no fewer than 16 emails, in three entirely separate threads, about Michi Henning's recent ACM Queue article, "The Rise and Fall of CORBA." As many of you know, Michi and I co-wrote Advanced CORBA Programming with C++ over 7 years ago, which I suppose is why people are emailing me to learn my opinion of his article.
Michi addresses two areas in the article: technical issues and standardization issues. The technical issues are his opinion, and are nothing different than what he's been stating in other articles and in comp.object.corba postings for years now. Go peruse the archives of comp.object.corba, and you'll quickly find that Michi was once extremely and very vocally pro-CORBA, and now he's extremely and very vocally anti-CORBA. He changed his tune because the company he now works for sells a proprietary system intended to be a better CORBA. That single fact is the ultimate source of all of his articles and news postings railing against CORBA.
When you know as much about CORBA as Michi does, finding things to pick on is trivial. The same could be said for any expert in their field of expertise. For example, he cites API complexity as an issue. If one looks at the entire CORBA API, then what Michi says about complexity is correct, but in the real world, nobody ever has to deal with the whole API. For example, I'm currently reading Programming Ruby, and it's 864 pages long. Does that make Ruby complex? No, because you never need to deal with it all at once. Similarly, many of the areas that Michi cites as problem areas are really only hypothetical problem areas, as they do not reflect the reality of what practicing CORBA developers see in normal day-to-day development.
Many people know about technical positives and negatives with CORBA. We really don't need yet another article telling us what it got right and what could have been better, especially when the article is written to appear academic and noble when in reality it's written by a businessman whose ultimate goal is to try to make the competition look bad.
The second part of the article, which talks about the foibles of standardization, is much better than the first part. It reflects similar issues to what I described in one of my "Toward Integration" columns. Standards bodies tend to result in much frustration for people like Michi, me, and anyone else who tries to design software that's generally useful, correct, minimal, maintainable, and extensible. As I mentioned on a recent panel, there are lots of people involved in standards who can't recall the last time they wrote a line of code. Such people should not be allowed to participate in standards bodies, IMO. How can you write a standard if you have no idea how to implement it?
All in all, Michi makes a variety of very good points about the negative aspects of standardization. He mentions the open source practice of having a benevolent dictator, and that's something I'd like to see for every standard spec that gets written. Michi is right -- democracy just doesn't always work, and you need someone with the power to just say no. The benevolent dictator model is proven to work well in practice, and I think it could really work well for standards too.
In summary, my advice is to take the CORBA parts of Michi's article with a grain of salt, considering they were written by someone who would like nothing more than to see his product replace all the hard-working and successful CORBA systems that are out there today. However, I advise you to pay close attention to the standardization issues Michi raises, as they are all too real and highly problematic.

Comments (8)
"He changed his tune because the company he now works for sells a proprietary system intended to be a better CORBA. That single fact is the ultimate source of all of his articles and news postings railing against CORBA."
You seem to be arguing backwards? I thought Michi & Co. embarked on Ice only because they started losing faith in what could be accomplished using CORBA?
Posted by Dilip | June 21, 2006 5:37 PM
Posted on June 21, 2006 17:37
Yes, Michi and crew did lose some faith regarding what could be accomplished using CORBA. However, what I write isn't really backwards, and the situation is definitely not as clean as you're trying to make it, because the problem is this: if they gave up on CORBA, why do they then feel the need to continue to attack CORBA, exaggerating its problems, every chance they get, for many years after giving up on it? And the answer is simple: they're competing with it.
For example, I haven't done much with CORBA over the past 4-5 years, as I mainly work on other stuff now, and I am of course well aware of a variety of technical issues with CORBA. However, that doesn't mean that I've found the need to go out and trash it publicly at every opportunity.
Posted by Steve Vinoski | June 21, 2006 5:58 PM
Posted on June 21, 2006 17:58
I kind of felt that it was more an indirect attack on WS-* than an attack on Corba.
Regarding the benefits of OSS, I havent yet responded to that. One thing is important: OSS projects do more iterative development than most standards. There is less stability, but better evolution. And, if there is only one implementation, no need for interop, so less need for stability.
Posted by Steve Loughran | June 21, 2006 6:14 PM
Posted on June 21, 2006 18:14
Hi,
Basically Michi doesn't even mention his product ICE.
Do you think he shouldn't write anything about what is not good about Corba ?
Should we repeat history and fall in the same traps again with WS ?
Regards,
Markus
Posted by Markus Kohler | June 22, 2006 8:06 AM
Posted on June 22, 2006 08:06
Markus, Michi doesn't need to mention his product ICE, because 1) he's written basically the same criticisms in numerous other places where he does mention ICE, 2) you can google either the information in his bio at the end of the article or just google his name and discover it. This is a pretty well-known approach to take when one is trying to appear to write something that isn't just a marketing piece.
As for what he writes about CORBA, obviously he can write what he wants, but I believe he has a responsibility to avoid exaggerating problems as he consistently does. I've told him exactly that on numerous occasions. Reading his criticisms, one would believe you can't get anything at all done with CORBA, which is wholly untrue, given how many financial, manufacturing, telecommunications, etc. transactions it successfully carries out every single day.
There's an old saying about "beating a dead horse." In Michi's eyes, CORBA has been dead for 4-5 years (though IONA's CORBA revenues easily prove otherwise), and yet he's been standing there beating it the whole time. Why? Why would anyone who thinks a technology is dead spend literally years telling us that? As I alluded in a previous comment, if he thinks it's dead, he needs to move on.
And as for WS, if you want my opinion, read the "Toward Integration" column, entitled "WS-NonexistentStandards", I linked to in the main body of my posting. I wrote it in September of 2004, and it was published in December 2004. In it, you'll find many standardization criticisms that are similar to those Michi writes about in his latest article.
And finally, I think another one of my "Toward Integration" columns, entitled "Is Your Middleware Dead?", is apropos here as well. Far too few technologists understand the market forces it explains.
Posted by Steve Vinoski | June 22, 2006 10:06 AM
Posted on June 22, 2006 10:06
> Michi was once extremely and very vocally pro-CORBA, and now he's extremely and very vocally anti-CORBA. He changed his tune because the company he now works for sells a proprietary system intended to be a better CORBA. That single fact is the ultimate source of all of his articles and news postings railing against CORBA.
Steve seems to be quite an authority on my innermost motivations. I'm impressed--it appears that he knows me better than I know myself.
> The technical issues are his opinion, and are nothing different than what he's been stating in other articles and in comp.object.corba postings for years now.
Exactly. *Many* years. For example, in 1997, two years before the book was published, I tried to find the morons who wrote the naming service. No such luck, most had conveniently disappeared, and the two guys I *did* manage to contact washed their hands of the entire affair. Here is a link to a comp.object.corba posting in which I severely criticized the naming service:
http://groups.google.com/group/comp.object.corba/browse_frm/thread/29f660600337126c/98138e04cb20f840?lnk=st&q=5dqv23%24qe1%40azure.dstc.edu.au&rnum=1&hl=en#98138e04cb20f840
By the way, Andrew Watson, Technical Director of the OMG once commented to me that "the people who wrote the naming service were clueless".
Here is a post from 1997 that criticizes IDL oneway:
http://groups.google.com/group/comp.object.corba/browse_frm/thread/752cd3451e273a18/1863b01f35205951?lnk=st&q=Implementing+Callbacks+in+CORBA+(Orbix)&rnum=1&hl=en#1863b01f35205951
In another post, in 2000, I posted my "pet peeves" about IDL. In that post, I used phrases such as "oneway is an abomination" and "attributes were a stupid idea". Here is the link:
http://groups.google.com/group/comp.object.corba/browse_frm/thread/4cf0522a17fa6453/6eb9ef65635fa44b?lnk=st&q=ten+gripes+about+IDL&rnum=1&hl=en#6eb9ef65635fa44b
Here is one where I got very upset with Roger Sessions for the nonsense he was spouting.
In that post (in 1998), I called the Persistent Object Specification "unimplementable fantasy material" (which it was):
http://groups.google.com/group/comp.object.corba/browse_frm/thread/8465c6f0e5001624/7710d45845799661?lnk=st&q=y1azp7xv1ij.fsf%40watson.parc.xerox.com&rnum=1&hl=en#7710d45845799661
Here is a post (from 2000) that criticizes OBV:
http://groups.google.com/group/comp.object.corba/browse_frm/thread/acb0971d1919399d/70f32f56d667e424?lnk=st&q=OBV+group%3Acomp.object.corba+author%3AMichi+author%3AHenning&rnum=3&hl=en#70f32f56d667e424
Another one (from 2001) that is even less charitable to OBV:
http://groups.google.com/group/comp.object.corba/browse_frm/thread/8a24f2c217810cc4/097af600287bd241?lnk=st&q=OBV+group%3Acomp.object.corba+author%3AMichi+author%3AHenning&rnum=6&hl=en#097af600287bd241
As early as 1998, I wrote about OBV:
"Yes. There seems to be a direct correlation between the eagerness of
individuals to see their work enshrined in a specification and their degree
of incompetence in developing said specification :-(
It's also highly embarrassing for the OMG to have things adopted that turn
out to be complete fantasy material. I'm still hoping that the new adoption
rules will go a long way towards preventing further embarrassment."
Here is the link: http://groups.google.com/group/comp.object.corba/browse_frm/thread/8465c6f0e5001624/7caab42be3e7d06c?lnk=st&q=embarrassing+group%3Acomp.object.corba+author%3AMichi+author%3AHenning&rnum=9&hl=en#7caab42be3e7d06c
Back then I was still hopeful that changes to the technology adoption process
could help to turn things around, as evidenced in the same post. Sadly, I was
mistaken.
So, to say that I "changed my tune" after I joined ZeroC is simply incorrect. I have been vocal about CORBA's and the OMG's failings all along, and never held back on telling people about the parts of CORBA that I thought were bad.
> Michi was once extremely and very vocally pro-CORBA, and now he's extremely and very vocally anti-CORBA.
Yes. I remember how blown away I was by CORBA back in 1995. It could do something that nothing else could do and was truly revolutionary in its day. It was also a lot simpler back then. As the years went by, it got more and more complex. And as I got more involved in the OMG and in the specification effort, I realized how badly written these specifications were. A search of the OMG's mailing lists reveals that I have said many very uncharitable things about CORBA long before we wrote the book, and I said lots more uncharitable things after we wrote the book.
In 2000, I rewrote the DynamicAny chapter in the spec from the ground up (with assistance from Steve and Jon Biggar) because, yet again, the OMG had published something that was complete garbage and couldn't stand up to even the most cursory examination.
By the time 2001 came around, I was thoroughly disillusioned with CORBA, and with the process that was used by the OMG. I had put years of very hard work into CORBA trying to make it better, and trying to stem the tide of morons who kept specifying fantasy material. Eventually, I realized, that I was trying to do the impossible and, in 2002, I decided that I had pushed enough #$!!@ uphill.
I had speculated years before I turned my back on CORBA about how nice it would be to create "CORBA done right". I knew that it could be done much better but, at the time, I never followed through with this idea because I didn't think it would be commercially viable. By 2002, the picture had changed for me. Marc Laukien offered me a chance to work on a new system (Ice) that would be "CORBA done right" and, by then, CORBA was so stuck in procedural and technical problems that I thought a competing technology could be commercially successful. So, I turned my energy towards creating Ice. So far, that has turned out to be a wise decision. Ice is fun to work on, our customers love it, it doesn't suffer CORBA's massive problems, and it's something I can work on without having to worry about the ethical issues I had to confront while working in the OMG.
> many of the areas that Michi cites as problem areas are really only hypothetical problem areas, as they do not reflect the reality of what practicing CORBA developers see in normal day-to-day development.
It is instructive to browse the comments on Slashdot for my article. There are *many* comments along the lines of "this stuff was simply too hard for me to ever get on top of". I'm certainly not alone in my opinion that CORBA is too complex and suffers many technical problems.
> In summary, my advice is to take the CORBA parts of Michi's article with a grain of salt, considering they were written by someone who would like nothing more than to see his product replace all the hard-working and successful CORBA systems that are out there today.
Steve couldn't be more wrong. World domination is something that I leave to other people, and I don't suffer from delusions of grandeur. Realistically, chances are that ZeroC will never gain more than a small share of the middleware market. And that is just fine with me. What matters to me is that I'm working on something that I can believe in--I'm doing just that at ZeroC.
Cheers,
Michi.
Posted by Michi Henning | June 22, 2006 10:37 AM
Posted on June 22, 2006 10:37
Fair enough, Michi, I will slightly revise my assertion to tighten up its accuracy: the articles and postings you've written since leaving CORBA behind to work on ICE have been motivated by the desire to prove that ICE is superior. What other motivation could there possibly be? Is your next article going to be about all the problems with DCOM, and the dangers of developing closed, proprietary software? Or perhaps you plan to write about all the problems that IBM DSOM or DCE had? Somehow I doubt it, as you don't view them as competition.
Let's consider another example. I hardly use C++ anymore, as most of my work these days is centered around dynamic languages such as JavaScript, E4X, Jython, Ruby, etc. So, should I go write a bunch of articles that make gross generalizations and exaggerations about all the problems in C++, even though I used it almost daily for nearly 20 years and created some damn fine software with it? It's the "in" thing to do, after all.
I too have leveled multiple criticisms at CORBA and standardization processes over the years. In fact, we both know that you first learned of some of the problems you have with CORBA directly from me, such as how the original oneway specification left much to be desired. However, unlike you, what I have not done is chosen to beat a dead horse. I don't believe for a second that CORBA is dead, but I rarely work on it anymore, and I know there are technical issues with it, but do I write article after article repeating the same old issues? No. So why do you feel the need to do so, other than to either directly or indirectly promote ICE?
My advice, my friend, is to move on. For you, apparently, CORBA is dead. Fine -- you are of course entitled to your opinion. Why don't you leave it, then, and find better things to do with yourself, instead of just regurgitating the same criticisms over and over again?
Posted by Steve Vinoski | June 22, 2006 2:28 PM
Posted on June 22, 2006 14:28
I would not judge the effectiveness of all standardization organizations and/or processes just by "The OMG Experience." I personally found OMG processes to be the least rigorous/most succeptable to "inappropriate influence" of any of the 4 (OMG, OpenGroup, IEEE and ISO) standards developing organizations that I've participated in. But it could just be that the standards groups I've worked in had more practicioners in them.
dave
Posted by David Emery | June 23, 2006 3:43 PM
Posted on June 23, 2006 15:43