Whats Wrong With Corba

This topic lists things that some people don't like about the CommonObjectRequestBrokerArchitecture (CORBA).

See also WhatsRightWithCorba, ComVsCorba, XmlRpcVsCorba


Problems with CORBA in general:

Implementation issues: Marketing and Cultural Issues:


In addition to the real and current problems with CORBA listed above, there are some historical reasons that people don't like CORBA, and also some misconceptions about it that have discouraged use.

Historical Problems with CORBA (no longer true):

Supposed Problems with CORBA (but not really problems with CORBA)

Supposed Problems with IDL:


CORBA has a reputation for being bloated and slow. The biggest reason for this was that Orbix, the market leader, truly was bloated and slow. But most CORBA implementations from the past couple of years work pretty well. Peformance is not much worse than just using raw sockets.

I had to use Orbix when it was first released and it was a real pig! It's not all their fault, though. The CORBA standards were very immature at the time and some parts were impossible to implement (e.g. Any values). However, the Iona business model was to SurfTheWaveOfMediocrity.

I've used GNOME's CORBA ORB, ORBit, and it's blisteringly fast. In-process objects are indistinguishable from non-CORBA objects in all but the most pathological cases (e.g., invoking a method a million times in a tight loop), and non-local objects are every bit as transparent as in-process objects. The ORB is very, very small too. Extremely well done piece of software. Before you go trashing CORBA, check out ORBit. It will fundamentally change what you think about CORBA.


The biggest problem with CORBA is that, because it has "objects", people treat it just like an object-oriented programming language, and ignore the fact that objects are communicating across a network. When designing CORBA systems, be sure to pay attention to the number of "round-trips" (request sends and result returns) needed to perform common operations. Object models that may work well inside a C++, Java, or Smalltalk program don't work when there is a few milliseconds of latency per call between the time that a client starts an invocation and when the result is received. (This is not really a problem with CORBA, but it is a problem seen in CORBA-based systems developed by dimwits.) See SessionFacade.


Another component technology rant... WhyAnotherComponentTechnology.


Many of the criticisms of CORBA on this page are either based upon old CORBA implementations, are based on misunderstandings about the design of distributed systems, or are just plain wrong. I'm going to delete the statements that have been refuted, unless someone thinks there is a good reason to leave them in place. -- KrisJohnson

I think the refuted statements have a value for historical reasons. They were true a while ago, and by the time they were refuted many projects experienced significant problems and Corba already had already gone out of hype. So those do have a role in WhatsWrongWithCorba. I used to like CORBA and orb implementation a lot and thought of it as such a cool idea - it also made me look good professionally, but lately I think of it as maybe it was way too complex all along. Given the experience of ErlangLanguage, and things like http://www.sics.se/~joe/ubf/site/home.html and other distributed frameworks, it certainly looks like distributed frameworks don't need to be as complex as Corba. Certainly, the fact that many orbs had many significant problems for a long time may be a warning sign of maybe AccidentalComplexity? -- CostinCozianu

I've moved them to the "Historical Problems with CORBA" and "Supposed Problems with CORBA" sections, rather than deleting them entirely. -- kj


For a detailed list of what is wrong with CORBA written by MichiHenning? (famed CORBA guru), see http://groups.google.com/groups?dq=&hl=en&lr=&ie=UTF-8&frame=right&th=67bb70d6d5c1204b&seekm=_MmSa.4709%24OM3.2483%40news-server.bigpond.net.au#link3. Note that Mr. Henning is hyping his own alternative to CORBA, the InternetCommunicationsEngine (Ice); see http://www.zeroc.com/iceVsCorba.html for more about flaws in CORBA that has been addressed in Ice.


CategoryCorba


EditText of this page (last edited November 14, 2006) or FindPage with title or text search