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.