[Mono-list] Better answer for Q66 in FAQ.

Martin Atkins martin@mca-ltd.com
Fri, 20 Jul 2001 14:57:11 +0100

It also means that "complex" (read "not easily linearizable") datastructures can
be transmitted between components by the transmission of a single reference.

Furthermore, the components can then share access to the datastructure (with
appropriate locking), rather than having to notify each other of their modifications.

For example, an incremental parser could modify a parse tree in response to changes
in the source caused by user editing actions, while an incremental compiler is compiling
(other parts of) the same tree. Of course there would have to be some communication
before the program is run to ensure that everything is compiled wrt the most recent
source :-).

In principle, an incremental optimiser could also be beavering away in parallel. Etc...


-----Original Message-----
From:	Tyson Dowd [SMTP:trd@cs.mu.oz.au]
Sent:	20 July 2001 00:23
To:	mono
Subject:	[Mono-list] Better answer for Q66 in FAQ.

I'd propose adding this information (but it's late at night here and it
would be nice if someone could check whether I am talking bollocks):

The key difference between CORBA (and COM) and the CLI is that the CLI
allows "data-level interoperability" because every language/component uses the
same data layout and memory management.

This means you can operate directly upon the datatypes that someone else
provides, without having to go via their interfaces.  It also means you
don't have to "marshall" (convert) parameters (data layouts are the
same, so you can just pass components directly) and you don't have to
worry about memory managment, because all languages/components share the
same garbage collector and address space.  This means much less copying
and no need for reference counting.


Mono-list maillist  -  Mono-list@ximian.com