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