I remember in the early 1980s when ephemeral (or generational) garbage collection started to be available in Lisp systems - this made a large improvement in run time performance. Good work!
I actually thought this was a repost of a very old article when I first noticed it on the HN front page. Then I realized that Ruby wasn't around in the 80s. Oh.
I thought all modern dynamic languages use generational GC.
Ruby's internals are hilariously naive. 1.8 is an AST interpreter (!) and 1.9 and 2.0 are dumb bytecode interpreters, with no quickening or anything.
Not to knock it too much - if it gets the job done it gets the job done - but it would be nice if they considered adding at least some undergraduate level interpreter class optimisation techniques.
And that was less then 5 years ago, and it was a Stop the World GC until less then 2 years ago updated to Incremental. While Mozilla's has had incremental for a year and are still working on Generational Collector.
The point is, apart from Java which gets many cooperate backing, even the most widely uses programming languages only recently had a decent enough GC implementation. As much as i hate this slow progression, most VM still dont have GGC as default at all.
I remember in the early 1980s when ephemeral (or generational) garbage collection started to be available in Lisp systems - this made a large improvement in run time performance. Good work!