21 Oct 2004 mathrick   » (Journeyer)

Now 100% CORBA_free()

wingo, you’re perfectly right, CORBA sucks big way. No, it’s not simple in basics, it never was, and will never be. CORBA is your typical 700+ vendors commitee-driven tech, meaning that it never gets below 700+ pages in spec, is never up-to-date, and is always horrendously complicated. Besides, it takes very wrong assumptions as its basis, meaning it can never be right, even in theory. And in practice, it’s also damn overengineered, introducing crack like POA, multiple inheritance in C (say hi to epv, baby), what have you, but failing to make unimportant details like CosNamingService required part of spec (what you say, that without Cos you can’t locate objects? Oh, that’s details). And yes, clever pieces of soft like PyORBit can relieve the pain by large, but that doesn’t change the fact CORBA is pure crack and fundamentally non-robust.

Bonobo (unfortunately) proves my point – it tried to make “CORBA for the rest of us", and lost all the way. It tries to hide all CORBA’s complexity behind another system built on top of it, but inevitably breaks, leaving you with pieces of Bonobo and CORBA lurking from beneath. Of all that, Bonobo::Unknown is small fry, just a name, meaning you don’t have any knowledge of given interface, besides the fact it’s an interface. It’s directly inspired by COM’s IUknown, no big deal, could be as well Bonobo::Object, if you don’t count the fact that BonoboObject is already taken for base implementation class.

Now, DBUS is great replacement for IPC part of CORBA / Bonobo, for it’s simple, well thought, and has single, well defined goal. But it should stay IPC, repeating Bonobo’s mistakes all over again by making it basis of UI embedding (which is dubious by itself, as there are very serious problems with abstracting UI enough to make it replaceable, yet integrated enough not to make it usability horror. So far, all attempts are more or less failures). You could probably have explicit mapping from DBUS to UI components, but making it default system would be wrong. For every day use better system is something along KParts’ lines, ie. based on dynamically loaded .so files.

Latest blog entries     Older blog entries

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!