Los Angeles - October 2, 2015
Jim Benvenuto on Metaobject Protocols Why We Want Them And What Else They Can Do
- Meetup: http://www.meetup.com/Papers-We-Love-LA/events/225395217/
- Paper: http://cseweb.ucsd.edu/~vahdat/papers/mop.pdf
This month Jim presented "Metaobject Protocols: Why We Want Them And What Else They Can Do" by Kiczales, Ashley, Rodriguez, Vahdat & Bobrow.
Abstraction is one of the pillars of computer science. Software has traditionally been constructed according to the principle that a module should expose its functionality but hide its implementation. This principle, informally known as black-box abstraction, is a basic tenet of software design, underlying our approaches to portability, reuse,and many other important issues in computing. However, in some cases black-box abstraction causes the very problems it is supposed to eliminate.
As a programming languages becomes higher and higher level, its implementation in terms of the underlying machines involves more and more trade-offs on the part of the implementer, about what cases to optimize at the expense of other cases. This leaves a programmer victim to inefficiencies driving them to break language abstractions and "code between the lines" making code more complex and less portable.
Meta-object protocols are a principled way of getting the most out of abstraction. It is a way to allow the end-programmer to go back and remake design tradeoffs to better suite their needs. In addition Meta-object protocols are an extremely fascinating and elegant formalism.
Papers We Love Los Angeles would like to thank Brainium for hosting this month's meetup.