Towards a new model of abstraction in the engineering of software|
Talk on Open Implementations by Gregor Kiczales, 1994 - 60 mins, Windows Media Player only.
Aspect Oriented Programming has its roots in Open Implementations / Meta Object Protocols. A MOP lets clients override parts of an implementation to better suit their needs (e.g. memory allocation strategy for objects.) The talk proposes that instead of hiding implementation details, control over "mapping dilemmas" should given to application programmers.
To recover the overhead introduced by opening the innards of the system, Kiczales proposes partial evaluation and code memoization at runtime.
Kiczales' advise to framework/library implementors is "if you can't conquer, at least divide".
Listener: "Is there a restriction that says that meta code isn't allowed to change the behavior of interface code?" Kiczales: "It's really nice if you don't make that restriction, but that freaks people out." (laughter)
A related paper was previously mentioned, and there's also a newer talk on AOP. (Also: AOP discussion on LtU.)