[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Strong Typing, Dynamic Languages, What to do?


Thanks for your note.  I did dismiss of Oscar rudely, and I apologize
for that.  However, let's try to put this in context, shall we?

I keep trying to focus this discussion back on the central point that
Seidel raised: performance.  In theory, it's relatively easy to argue
either direction.  Briefly: For every argument that humans know
better, you can counter-argue that (a) that knowledge can be built
into an optimizer that generates the super-efficient collector, (b)
you can't be sure the human got it right, and (c) a cost-benefit
analysis may not bear out the manual effort.  (N.B.: These are
figurative questions, not points I intend to debate, because I'm
confident I can defend my views on them for days on end, to nobody's
real edification.)

The result is that, in theory, the question of which will outperform
the other is an open question.  That's what I teach my students, and
that's what you will find papers say.  But to argue that and leave the
matter there would be the height of head-in-the-clouds academic
presumption, right?

So I keep trying to get us back to focusing on real collectors, real
allocators and real memory management schemes.  My point, if it isn't
clear enough by now, is that NOBODY KNOWS which is better and when
with broad certainty.  Garbage collectors are living, breathing
entities with beating hearts and bytes coursing through their veins.
This is an experimental science.  But NOBODY HAS DONE THE EXPERIMENTS.
I keep hoping someone on the list will point me to new data to the
contrary (I know about Zorn's early-90s experiments).  But nobody has.

I must say, I can't help but chuckle at the irony here.  Normally, you
would expect the academic to be presenting logical constructions, and
the "real world" person to knock them down by asking for hard
evidence.  Exactly the opposite has happened on this thread.  And
irony aside, we have a mismatch of methods.  Oscar argues from the
perspective of logic.  However, the real question is outside the realm
of logic -- it's in the realm of numbers.  So offering logical
discourse in response is simply inappropriate reasoning.

Finally, let me just point out that bringing up the "real world" is
not only condescending (though, I realize, that's the intent), it's
also meaningless.  I would argue that I run MzScheme on larger data
sets than anyone else on this list -- larger, even, than all of the
rest of you put together.  Why?  Because in one of my uses of
MzScheme, it's nearly trivial to generate graphs larger than the size
of the universe (pick your units).  The cross-product construction
that generates objects of this size is, unfortunately, a mathematical
definition, so it doesn't pause to check whether it's running on a
.com or .edu machine.  Being in academia doesn't spare me any.

I am still interested in hard data on the performance question.  Some
of us at Brown are, in fact, trying to gather some information on this
problem.  This is a rich topic for experimental research that has too
long been overtaken by "proofs", arguments from reason that never
consider all the relevant (not to mention Nth-order) effects, and
other insufficient methods.  We need hard numbers, and nobody --
whether an academic or a "real world"er -- should settle for less.

I'll respond to your technical question separately.