Re: A broken brand?

Sandro Magi <[email protected]>
Newsgroups gmane.comp.lang.e.general
Message-ID <[email protected]>
David Wagner wrote:
> Sandro writes:
>> Unless I'm mistaken, this is a problem for sealers, which have many uses 
>> that cross machine boundaries.
>>     
>
> I'm ignorant about distributed systems, so perhaps I'm talking
> nonsense, but I don't quite follow this comment yet.  In a distributed
> system, transparent forwarders/proxies have to be implemented as part
> of the TCB (not at the application layer), and they have to have the
> ability to "forge" types (i.e., to pretend to be of any desired type).
> So I don't see why type-checking would prevent using these objects in
> a distributed system.

We have a disagreement on the fundamental assumption: I don't accept 
transparent interposition/forwarders are necessary, or even desirable. 
It sees significant use in object-oriented systems, but not much use in 
functional programming. By adding transparent forwarding, you lose 
"sitedness" properties, which I think are important for reasoning about 
local vs. remote systems.

See for instance "fswebtoolkit" [1], which distinguishes client and 
server computations using the monads in F# (called 'computation 
expressions'). Client computations are compiled to Javascript for the 
browser, while server computations execute server-side in the .NET VM. 
This site distinction is enforced at compile-time, so the compiler 
ensures that server and client computations cannot be mixed in the same 
expression, except via message sends. I think there's a great deal of 
value here, which interferes with properties provided by transparent 
forwarding.

Sandro

[1] http://tomasp.net/fswebtools/files/*fswebtoolkit*-ml.pdf
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.