MMNet 11


Mark Shannon


GC in dynamic languages, stuck in the 1970s?

Dynamic languages are important part of the programming landscape. According to the TIOBE popularity index, PHP, Python, Perl and Ruby are collectively almost as popular as Java or C. Although automatic memory management is an important part of these languages, and despite over 50 years of garbage collector research, the garbage collectors of the main implementations of these languages are surprisingly poor. PHP, Python and Perl all use reference counting with a poorly integrated cycle-collector bolted-on. Ruby uses a Mark and Sweep collector, but is notorious for leaking memory in long-lived processes. Why do these popular and important languages have such poor memory management, and what can be done about it? (This is a short talk; about 15 minutes)