GNOME Platform Stormclouds
Posted Mar 29, 2004 8:52 UTC (Mon) by massimiliano
In reply to: GNOME Platform Stormclouds
Parent article: GNOME Platform Stormclouds
"Because Microsoft will be allowed to pursue royalty revenue from the APIs it publishes, Jeremy Allison says that the projects such as Samba, which he jointly leads, may face a prohibitive hurdle."
Quoted from http://theregister.co.uk/content/4/36520.html
Are we sure no such issues will pop up with .NET?
The main reason why this is not an issue for GNOME is that .NET
(and, more importantly, mono) is not a monolithic thing, kind of "all or
nothing". Miguel tried hard to explain this, basically there are three
large pieces in mono: the ECMA core, the Microsoft APIs reimplementation,
and the Linux/Unix/GNOME APIs bindings. The only piece that can
have some issue (in the sense you mention above) is the reimplementation
of the Microsoft APIs, and it is totally unrelated with the other big
chunk of APIs (the Linux/Posix/GNOME ones).
This is something very important: the only thing Microsoft can
do is create difficulties in emulating the Windows APIs, which are needed
only if you want to run .NET applications "conceived" for Windows.
In mono, we are creating a different "stack" of APIs, that give access
to the Posix world, GTK+, Mozilla, Evolution, and ultimately all the
GNOME libraries. On these, Microsoft has no rights at all.
Of course software patents are a different issue... but those patents
would have to apply to the GNOME libraries themselves, and therefore
would be a problem even today, and without mono (I hope you get the
point, otherwise feel free to ask for a clarification).
Is it really clear that CORBA is no good as an infrastructure for GNOME? Why would .NET be so much better?
Hmmm... CORBA is just like a specific application of .NET remoting, and
just that. .NET is much more powerful, it is a whole platform for software
developing and execution. In simpler words, CORBA has no bytecode and
virtual machine definition, and no real class libraries. It is just a way
to define remote interfaces, with one protocol to have them talking each
other, and the specification of language bindings to use these interfaces.
In fact, GNOME components (Bonobo objects) are based on CORBA, and the
result is not so exiting. The KDE guys started with CORBA, too, but then
sow how bad it was for in process
desktop components, and threw it
avay, going for a "propriatery" component system (KParts) which works
very well ("propriatery" because they designed it themselves, it is not
based on any existing standard, but of course it is free software).
So, .NET would be better because it would be a real platform to write
code, not just a way to specify abstract interfaces that turns
out to be overkill and cumbersome to use for in-process components.
And mind you, I have always liked CORBA a lot, it is simply not a tool
for this job (and, by the way, you could also have CORBA objects in .NET
if you really wanted so, at least in principle, but it seems to me that
current IIOP implementations are not yet "carrier grade").
to post comments)