new syntax - a provocation
Luke Gorrie
luke@REDACTED
Mon Sep 29 19:07:39 CEST 2003
"Richard A. O'Keefe" <ok@REDACTED> writes:
> So we (= "computer scientists in general") know how to implement a global
> garbage collected atom table in a (uni- or tightly coupled multi-)processor
> concurrent programming language.
No worries then, that's what Erlang is!
> It's interesting to consider the question: "what would an Erlang
> implementation have to be like for us to be able to take a running
> process and move it to another processor?" (IBM's AIX was able to
> do this on their mainframes, I believe. I think Kali Scheme can do it.
And also the question: why would you want to? Seriously.
Kali Scheme looks extremely complex and subtle to me. In Kali you can
capture a process and send it to another machine, and it will
magically transport the related code on-demand, do distributed garbage
collection, and so on. It even lazily copies the processes, sending
just a few stack frames and copying the rest on-demand. This all
strikes me as terrifying - what happens if something fails, when
everything is so interconnected? I believe they assume that nothing
will fail, which makes it a completely beast than Erlang.
In comparison Erlang is very simple and predictable. You the
programmer can keep track of where everything is happening, and
explicitly move things around (e.g. rpc:call/4) where desirable. The
isolation between nodes is a huge feature since you can actually
understand what happens when one of them fails. Life is good, hurray
for Erlang!
I don't want to knock Kali, because it looks very groovy, but it's the
opposite of what I want for Erlang's bread-and-butter distributed
networking applications.
P.S., an even more far-out and fun integrated distributed system than
Kali is Alan Bawden's "Linear Graph Reduction" stuff. He compiles
programs into a graph representation where all their inter-references
are apparent and then tries to dynamically arrange them between nodes
to minimize network communication. Very beautifully written thesis:
Implementing Distributed Systems Using Linear Naming
ftp://publications.ai.mit.edu/ai-publications/1500-1999/AITR-1627.ps (1MB)
Cheers,
Luke
More information about the erlang-questions
mailing list