For the last two days, I had the pleasure of taking part in the MM-Net summer school on garbage collection and memory management. I’ve felt comfortable for quite some time now constructing interpreters and compilers in a variety of contexts, but have always imagined that the garbage collector was a bit of a black art.

(For those following along at home, garbage collection is just what it sounds like: some programs, while they are running, use up resources (like memory) and then throw away the wrapper. Unfortunately, they don’t clean up after themselves; instead, these programs leave a mess everywhere. The garbage collector is a special program that goes around picking up all the trash, freeing up space for… well, for other programs to make a mess.)

After two days listening to experts from around the world talk about real garbage collectors in real, shipping products, I discovered something: garbage collection isn’t that hard. I mean, the principles of it are dead easy; it’s the real-world constraints that make it challenging. I no longer consider it a black art, and indeed, learned a great deal about how modern, GC’ed languages work that I hadn’t fully realised before.

I’m hard pressed to say which of the lectures I enjoyed most; Emery Berger from UMass was a very dynamic speaker; Dave Detlefs from Sun also had some very interesting things to say, and I enjoyed good dinner conversation after the first day at our end of the table with him, Ryan, and Hans Boehm.

All told, it was an excellent opportunity. For two days, I felt like I was back at Indiana, taking classes, trying to absorb concepts as fast as I could, assimilating and planning on how I would use this information in my own work. It felt good.

It felt good, but it was tiring. It really is time for a holiday.

Comments are closed.