Some of you may already know that I have migrated from Visual Studio .NET 2003 to Carbide.c++ for my Symbian OS development. I have been recommending developers to use Carbide.c++ on discussion boards as well as my blog.

In the last couple of days, I have received an error message in my Carbide.c++ related to CORBA (Common Object Request Broker Architecture). Yes… it is a real surprise… but the message is really about CORBA (see screenshot below).

CORBA error in Carbide.c++

According to the message above, CORBA is needed as communication channel between the IDE and the Debugger Engine. It appears usually when time-out happens, for example when my laptop is “busy” doing something else.

This is actually not the point I want to discuss here. My point is “Why does Carbide.c++ use CORBA?” Aren’t there any other methods to talk to the debugger, such as JNI (Java Native Interface)? I am not saying that CORBA is bad. It just not the “right” architecture for simple communication between Java-based IDE and C++-based debugger. Why?

  • CORBA is too complex and it has too many overheads. There are some papers that discuss this issue. One of them is a paper from Prof. Juric, Performance Comparison of CORBA and JNI.
  • Some people say CORBA is dead. Why should we use technology that is already dead? ACM Queue has a nice article, The Rise and Fall of CORBA, which lists some lessons learnt from CORBA’s mistakes.

I don’t know why COBRA was chosen as the architecture for Carbide.c++ debugger. They must have good reasons for choosing CORBA. Unfortunately, it causes a problem for developers who are still using “relatively” slow machine, just like me…. :(

Bonus Links

  • Object Management Group – the official web site of a group who maintain CORBA specification.
  • Java Native Interface – the official documentation of JNI from Sun Microsystems.
  • Matjas B. Juric’s Papers – Mr. Juric is an associate professor at the University of Maribor, Slovenia. He has published some papers about performance analysis between CORBA and other solutions.