[Prev][Next][Index][Thread]
Re: Distributed objects vs. generic functions and multi-methods
"Eric Kidd" <eric.kidd@pobox.com> wrote in message
news:200110161943.PAA09454@life.ai.mit.edu...
> On Tue, 2001-10-16 at 10:45, Scott McKay wrote:
> > What has piqued my curiosity is, what does a good distributed
> > object system look like in a language in which generic functions
> > with multi-methods are the things around which designs are
> > composed?
>
> Not every language feature solves every problem equally well.
>
> Multiple dispatch offers many advantages over traditional "message
> passing" dispatch. But those advantages may not apply in all
> application domains.
>
> In distributed programming, objects may be on different machines. And
> although the "recipient agnosticism" of multiple dispatch is usually a
> huge win, it's doesn't give you any idea which server should run the
> code.
>
> So this looks like a small, localized loss to me, and not even a serious
> one.
>
> > I'm sure there are people who have thought about this. I would
> > be very interested in what ideas you might have.
>
> I think you're suffering undue agony. :-) Just slap together a "define
> interface" macro, assume that the first argument to a remote function is
> the target, and sleep easily.
I've got a 'define interface' macro, but what is lacking in Dylan
is enough MOP to enforce the protocol you defined.
> Both macros and multiple dispatch are well-solved problems, and they
> offer tremendous wins in lots of real-world designs. The fact that
> weaker forms of dispatch are well-suited to certain programming idioms
> shouldn't come as any suprise.
>
> I /do/ think that there should be some way to declare the dispatching
> and non-dispatching arguments of a generic function, however.
>
> Cheers,
> Eric
> (who'd rather have the power and not need it, than vice versa)
>
References: