toby at ovod-everett.org
Mon Jun 28 05:54:36 UTC 2004
On Sun, Jun 27, 2004 at 08:20:43PM -0700, Michael Latta wrote:
> If I can paraphrase your position:
> Reference counting is more deterministic when releasing resources that
> have semantics beyond bits in memory.
I believe the team working on Parrot and Perl 6 has wrestled with these issues
a bit. I'm not sure what the current status is, but I remember that at one
point they were considering pure GC and no guarantees on object finalization.
I believe that phase didn't last long - too many people made enough
impassioned arguments in favor of deterministic resource release that a hybrid
system has developed.
http://perlmonks.thepen.com/193313.html has a long discussion of GC vs.
refcounting. The implementers keep saying, "Are you SURE you REALLY need
deterministic finalization, 'cause we'd really like to be free of it.
PLEASE!" And the users keep saying, "It can't be that painful, and yes, I'd
much rather have it." The users never seem to understand how painful it is to
implement and the performance tradeoffs, but the implementers never seem to
understand the importance of having it be simple. The implementors keep
coming up with approaches that increase the complexity for the user, but make
things manageable for the implementors.
I wonder if this is a New Jersey vs. MIT school of thought thing. As a
programmer, I deal with enough weirdness in the environment, without wanting
to worry about weirdness in my language. In the end, I want a language that
is _predictable_ to the greatest extent possible. I know when writing
multi-threaded code that I have to worry about race conditions. But my
instinct is to presume that in single-threaded code that I can forget about
them, and that is no longer the case when deterministic finalization goes out
Might take a look at http://www.sidhe.org/~dan/blog/archives/000199.html for
what I think is something vaguely like a recent word on the subject.
More information about the Self-interest