During an IM chat with my colleague Jon, he used the term ‘Push Inheritance’ to describe aspects. Not sure if he came up with it first, but it was such an apt description. Adding aspects is like dynamically slotting an object into an inheritance hierarchy after the fact. It really helped my understanding of aspects.
We also dicussed how Ruby has aspects built in – its possible to hook into the Ruby kernel and intercept every single method invocation, or replace the default implementation of ‘new’ with one of your own, wrapping your objects at instantiation time. Ruby rocks.