Another thing to toss into the discussion, preferably sooner rather than
later: continuations.  From what I can tell, implementing continuations
relies on having an arbitrary graph of "stack" frames, and garbage
collecting them when they can no longer be reached.  Putting continuations
on top of a C-like stack looks either expensive, difficult, or both --
sure, you can always copy the entire stack whenever someone does a
call/cc, but for cases where the continuation is not invoked, or in which
it is used like an exception, this seems wasteful.

You could argue that they can be slow because they're not a very important
language feature, and that they will rarely be used.  I'm sympathetic to
that point of view, having never felt the lack of continuations in my
brief programming life, but if that's the way we want to go, we should at
least be explicit about it.

/s

Reply via email to