L
Luís Miguel Lourenço
Hello,
I'm working with some friends on an AOP comparison across several=20
programming languages. We're doing this as a small project for a=20
college course. We want to talk about AOP and how it's been implemented=20=
in various languages, it's influence on them and how it's being=20
accepted by their various communities.
We've chosen Ruby as one of the languages. Java and C++ are the other=20
ones. This seemed like a good idea since they stand at different levels=20=
of dynamism. Dynamism as in metaclasses, reflection, open classes,=20
eval, etc.
I've searched the mailing list archives and googled for information=20
about AOP and Ruby, but haven't come up with much. AspectR seems to=20
have been abandoned. I did find a proposal for AOP in Ruby up at=20
RubyGarden. Not much more though. Can someone give us some pointers to=20=
more information? My impression is that there isn't much interest in=20
AOP from the Ruby community in general.
I'm somewhat convinced that Ruby, compared to many other languages,=20
enables one to effectively cut back tremendously on code scattering,=20
with it's reflection capabilities, metaclasses, eval, etc. But from=20
what I've understood from AOP it aims to bring direct semantics to code=20=
that crosscuts a program. So, I'm not sure the techniques used in Ruby=20=
would qualify as AOP. I have however seen an interesting quote by Dave=20=
Thomas (http://c2.com/cgi/wiki?AspectsAndDynamicLanguages) in which he=20=
says "Once you have decent reflection and metaclasses, AOP is just part=20=
of the language.". I'm not sure I agree with it. I agree in the sense=20
that I can probably avoid code scattering using Ruby, I don't agree=20
because I have to think in terms of metaclasses, method aliasing,=20
reflection and whatnot to get the code in there. I don't know how big a=20=
deal that is. Or if it is a deal at all. Any thoughts on this?
Lu=EDs Miguel Louren=E7o=09=
I'm working with some friends on an AOP comparison across several=20
programming languages. We're doing this as a small project for a=20
college course. We want to talk about AOP and how it's been implemented=20=
in various languages, it's influence on them and how it's being=20
accepted by their various communities.
We've chosen Ruby as one of the languages. Java and C++ are the other=20
ones. This seemed like a good idea since they stand at different levels=20=
of dynamism. Dynamism as in metaclasses, reflection, open classes,=20
eval, etc.
I've searched the mailing list archives and googled for information=20
about AOP and Ruby, but haven't come up with much. AspectR seems to=20
have been abandoned. I did find a proposal for AOP in Ruby up at=20
RubyGarden. Not much more though. Can someone give us some pointers to=20=
more information? My impression is that there isn't much interest in=20
AOP from the Ruby community in general.
I'm somewhat convinced that Ruby, compared to many other languages,=20
enables one to effectively cut back tremendously on code scattering,=20
with it's reflection capabilities, metaclasses, eval, etc. But from=20
what I've understood from AOP it aims to bring direct semantics to code=20=
that crosscuts a program. So, I'm not sure the techniques used in Ruby=20=
would qualify as AOP. I have however seen an interesting quote by Dave=20=
Thomas (http://c2.com/cgi/wiki?AspectsAndDynamicLanguages) in which he=20=
says "Once you have decent reflection and metaclasses, AOP is just part=20=
of the language.". I'm not sure I agree with it. I agree in the sense=20
that I can probably avoid code scattering using Ruby, I don't agree=20
because I have to think in terms of metaclasses, method aliasing,=20
reflection and whatnot to get the code in there. I don't know how big a=20=
deal that is. Or if it is a deal at all. Any thoughts on this?
Lu=EDs Miguel Louren=E7o=09=