PHP 5.3 includes garbage collection for circular references

Now, this is what I'm talking about. I haven't done PHP in ages, but today I needed to do some quick scripting and I realized there's been a new major release sometime after my last contact with the language. Quick look at new features includes garbage collection for circular references, something that perl still doesn't include.

You see? This is the sort of things that we lose by allowing Wall and his minions to have his way. A few years ago it would have been laughable to think that PHP was somehow more advanced than perl, but that's not the case anymore.

Of course, PHP has this garbage collection disabled by default, and seems quite experimental, in a very PHP-ish way. But still, at least there's an evolution.

What's really sad is that GC algorithms are very well known and quite easy to use; the Boehm GC comes to mind immediately.

See what happens when you dream of a pluggable, perfect GC scheme for a language that's been in development for 12 years instead of finishing something that's better than perl 5 and can be done now?

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
Without JavaScript enabled, you might want to
use the classic discussion system instead. If you login, you can remember this preference.

What's really sad is that GC algorithms are very well known and quite easy to use; the Boehm GC comes to mind immediately.

What you're missing from this analysis is that swapping to mark & sweep GC, particularly a conservative GC such as Boehm, means that you no longer have any guarantee of the timing of destruction of objects, or even that they'll be (formally) destroyed at all, before program exit. So many of the existing uses of DESTROY in Perl would go out of the window, and the paradigm of Resource [wikipedia.org]

Some hybrid systems use simple refcounting but occasionally run a full GC to reclaim circular references. As well, it's certainly possible to use a mortalize scheme for simple escape analysis to catch the majority of cases where you want timely destruction; most objects tend to have reference counts of zero or one.

This is the sort of things that we lose by allowing Wall and his minions to have his way.

Uhm, the development effort for Perl 5 never ceased (although it bled momentum for a time for a long list of disparate reason), nor has Larry been involved in a very long time. In fact there is something of a schism and sometimes outright hostility between the 5 and 6 communities. It’s a convenient to identify a corrupt leader to project all problems onto, but it has little to do with reality.