Miguel de Icaza explains
Mon, Jul 9, 2001; by Dave Winer.
From Miguel de Icaza re the piece with the same name. 
I just read your piece on scripting.com today (still getting
familiarized with the terminology and the whole network), it is pretty
funny that you called the article with my name ;-)
My interest in .NET comes from the attempts that we have made before
in the GNOME project to achieve some of the things .NET does:
* APIs that are exposed to multiple languages.
* Cross-language integration.
* Contract/interface based programming.
And on top of things, I always loved various things about Java. I
just did not love the Java combo that you were supposed to give or
take.
APIs exposed to many languages we tried by having a common object base
(GtkObject) and then following an API contract and a format that would
allow others to wrap the APIs easily for their programming language.
We even have a Scheme-based definition of the API that is used to
generate wrappers on the fly. This solution is suboptimal for many
reasons.
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 Unkonwn 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
applications.
Best wishes,
Miguel
|