[comp.parallel] Language Embedding, Linda and FCP

carriero@YALE.EDU (Nicholas Carriero) (05/01/89)

Certainly we didn't mean that language embedding is a vacuous or
pointless exercise in general, and are sorry if that impression was
created.  What we meant was that it is a non-basis for comparison
between communication in FCP and in Linda, and presented as such it is
misleading and fundamentally flawed.  C-Linda was not embedded in FCP,
the Linda tuple space operations were.  Fine, but obviously no
counter-embedding is possible, because the Linda operations don't
constitute a programming language.  In our view, a "controlled
embedding experiment" would compare mutual embeddings of FCP and
Prolog-Linda, not FCP and Linda by itself and not FCP and C-Linda.  If
the response is "Prolog-Linda is merely an idea, not a specification
and not an implementation", fine, but realize nonetheless that you
have not carried out some kind of objective comparison.

More generally, that Udi believes this is an "objective method"
illustrates the danger inherent in the procedure.  It is objective if
you confine yourself to asking "can you or can't you"---but it becomes
highly subjective once you wonder beyond that.  Perhaps you have a
precise metric for complexity, but why that metric?  You say you
implemented X in Y, but was it a "reasonable" implementation?  Was it
"pretty"?  These questions have subjective, not objective answers.
Note, we're not saying it is not useful to go beyond "can you or can't
you", but we are saying when you do don't fool yourself (or others)
into believing your answers are objective---your assessment of the
results and indeed your very methodology are subject to and will
likely reflect your prejudices.

Given this clarification of our views, let's restate the response to
Udi's original embedding comments. Udi's claim that "you can" is
uninteresting.  FCP(^,!) as a virtual machine, offers, among other
things, a shared resource, locks and an FCP specific ways to manage
them.  It is our experience that Linda can generally be implemented
given a system that offers a shared resource, some locks and a way to
manage them. Thus, our comment that we would be surprised if you could
not implement Linda in FCP(^,!) and our reaction that the "you can"
result is uninteresting.  Udi would like to go beyond this
uninteresting result and make apparently "objective" claims of
expressivity and flexibility.  For the reasons outlined above, we
believe these claims, if valid at all, are actually
subjective---"soft" as it were.  Suffice to say we disagree.

So we come full circle.  We have our reasons (detailed in "Linda in
Context") for believing Linda is a better model for communication in
distributed and parallel computing than that offered by Prolog-86 (or
FCP(^,!) for that matter).  Udi believes to the contrary and offers as
one reason the Linda embedding.  We disagree on the significance of
this evidence.  Udi, it appears, believes there is something objective
in the demonstration that supports his claims of expressivity and
flexibility, whereas we believe that anything beyond "you can" is
subjective and, in this particular case, says little more than "it's
better because it's better."

With respect to the comprehensibility of FCP, we don't doubt for a
moment that to Udi and many others, this is a natural medium of
expression.  We said this point was subjective, and meant it.  In
retrospect, we probably shouldn't have made the comment, not because
we don't find the code dense, but because it contributes nothing
objective, or even new, to the debate.  It says little more than "it's
worse because it's worse".

Assuming Udi accepts this summation, we think there is little point in
our continuing to debate these issues.  Perhaps new issues
could be explored, but failing that ...

Both sides have made their respective tastes clear---the most useful
outcome of this discussion.  Both sides have failed to convert the
other.  Let's let the users decide.