MOP Retrospective - Gregor Kiczales speaks to lispvan

Sunday, July 9, 2006

At our last lispvan meeting, we were pleased to have Gregor Kiczales (the author of the book The Art of the Metaobject Protocol - portions of which are available online) speak to our group. We matched our previous "best" of 17 attendees which is a testament to how highly regarded Gregor's work is in the Lisp world!



The format of the meeting was a Question and Answer session, with me initially posing a list of questions that I had prepared or which various individuals (including Pascal Costanza, Dave Roberts, Gary King, Cyrus Harmon, and Michael Weber) had emailed/IRCed to me. There were then additional questions from the audience. I recorded the audio of the meeting so that the session is preserved for posterity.



Here is a partial list of the questions that were asked:

To start off, and to set the stage a bit, could you review the history around the original work that you did in developing the CL MOP and AMOP and put it into some sort of historical context.

What are some things that you've always thought the MOP could be used for (but that you haven't seen implemented yet)?

In one of your papers, you talk about the idea of using MOP-like concepts in the creation of an operating system. What other examples have you seen of systems with "ad-hoc MOP's"?

How was the move from runtime MOPs to (exclusively) compile-time MOPs motivated? Was this a concession to the competition from static languages? Was the ability to change things at runtime not considered important enough?

I'd like to hear about the tradeoffs in language design between dynamism, performance and interactivity (e.g., something like Dylan's sealing comes to mind). An "ideal" MOP would allow this to be part of the tuning.

Why wasn't more done to integrate structures and classes?

Given the success of the MOP in CLOS, why haven't MOP ideas been more widely adopted in other systems?

What the hell are you doing with all this Java crap!?

What ever became of applying MOPs to areas like compilers?

Could you comment on how to avoid metacircles in a principled way.

There were many more questions asked and and I won't try to summarize Gregor's responses here - best to just grab a beer, sit back, and listen to the recording. It's not every day that you get to hear a Lisp legend speak!The audio file is kiczales.wav and it is about 139MB in size and an hour and 15 minutes in length. For those of you who have been anxiously awaiting the recording (and sending me "hurry up" emails), my apologies for not getting it out sooner. However, I had to do a minor edit to the audio and the last two weeks have been insane with a combination of visitors, work deadlines, my daughter's High School graduation, and the onset of beautiful Vancouver summer weather! Luís Oliveira kindly sent me a an ogg version of my 139MB .wav file. His version is only 13MB in size, so if you have the ability to play .ogg files, his one is a much kinder download! Grab it from here . Yet again I have proof of my utter lack of knowledge when it comes to audio/video tools/utilities/formats! Thanks Luis!