Hello,

I'm working with some friends on an AOP comparison across several 
programming languages. We're doing this as a small project for a 
college course. We want to talk about AOP and how it's been implemented 
in various languages, it's influence on them and how it's being 
accepted by their various communities.

We've chosen Ruby as one of the languages. Java and C++ are the other 
ones. This seemed like a good idea since they stand at different levels 
of dynamism. Dynamism as in metaclasses, reflection, open classes, 
eval, etc.

I've searched the mailing list archives and googled for information 
about AOP and Ruby, but haven't come up with much. AspectR seems to 
have been abandoned. I did find a proposal for AOP in Ruby up at 
RubyGarden. Not much more though. Can someone give us some pointers to 
more information? My impression is that there isn't much interest in 
AOP from the Ruby community in general.

I'm somewhat convinced that Ruby, compared to many other languages, 
enables one to effectively cut back tremendously on code scattering, 
with it's reflection capabilities, metaclasses, eval, etc. But from 
what I've understood from AOP it aims to bring direct semantics to code 
that crosscuts a program. So, I'm not sure the techniques used in Ruby 
would qualify as AOP. I have however seen an interesting quote by Dave 
Thomas (http://c2.com/cgi/wiki?AspectsAndDynamicLanguages) in which he 
says "Once you have decent reflection and metaclasses, AOP is just part 
of the language.". I'm not sure I agree with it. I agree in the sense 
that I can probably avoid code scattering using Ruby, I don't agree 
because I have to think in terms of metaclasses, method aliasing, 
reflection and whatnot to get the code in there. I don't know how big a 
deal that is. Or if it is a deal at all. Any thoughts on this?

LuùÔ Miguel LoureníÐ