I find this post endlessly amusing. Consider Firefox - a large C/C++ application that's been plagued over the years by memory bloat and leaks. So now we see one of the lead developers touting the progress they've made - by building a poor man's garbage collector:
Some leaks are harder to fix than others. One of the most difficult ones is where two objects have references to each other, holding each other alive. This is called a cycle, and cycles are bad. In previous versions, we've used very complex and annoying code to manually break cycles at the right times, but getting the code right and maintaining it always proved to be difficult. For Gecko 1.9, we've implemented an automated cycle collector that can recognize cycles in the in-memory object graph and break them automatically. This is great for our code as we can get rid of lots of complexity. It is especially significant for extensions, which can often inadvertently introduce cycles without knowing it because they have access to all of Firefox's internals. It isn't reasonable to expect all those authors to write code to manually break the cycles themselves.
There are collectors out there for C and C++ (not to mention languages that come with that already implemented) - so I guess the older question I could ask is, will they end up with most of a Lisp system built by the time they're done :)
Technorati Tags:
garbage collection