"...The Cross-language integration we have been doing
with CORBA, sort of like COM, but with an imposed marshalling
penalty. It works pretty well for non inProc components. But for
inProc components the story is pretty bad: since there was no CORBA
ABI that we could use, the result is so horrible, that I have no
words to describe it.
On top of this problem, we have a proliferation of libraries.
Most of them follow our coding conventions pretty accurately. Every
once in a while they either wont or we would adopt a library
written by someone else. This had lead to a mix of libraries that
although powerful in result implement multiple programming models,
sometimes different allocation and ownership policies and after a
while you are dealing with 5 different kind of "ref/unref"
behaviours (CORBA local references, CORBA object references on
Unknown objects, reference count on object wrappers) and this was
turning into a gigantic mess.
We have of course been trying to fix all these issues, and
things are looking better (the GNOME 2.x platform does solve many
of these issues, but still).
.NET seemed to me like an upgrade for Win32 developers: they had
the same problems we had when dealing with APIs that have been
designed over many years, a great deal of inconsistency. So I want
to have some of this new "fresh air" available for building my own