I can’t begin to tell you how impressed I was, when I was first learning Smalltalk, to discover that programs were themselves built out of objects, and that you could change and extend these too, just like an other. It’s a big part of why I’m still here, and standing before you today.

(Give a brief rundown of what these do at runtime)…

There is really very little that you can’t get at in Smalltalk. We identified the things you can’t override back in ’89: sending a message, receiving a message, returning from a context, and reading and writing instance variables.