[PRL] AOP questions

Doug Orleans dougo at place.org
Wed Mar 30 16:10:41 EST 2005


Joe Marshall writes:
 > But note that Swindle co-exists quite nicely with MzLib classes, so
 > although the MzLib class-hierarchy imposes a dominant structure, you
 > can side-step that with a co-existing class paradigm.  Do *that* in
 > Java!

Try MultiJava, or JPred (predicate dispatch).
  http://multijava.sourceforge.net/
  http://www.cs.ucla.edu/~todd/jpred/
Maybe this is cheating, since they're extensions to Java, but they do
compile into JVM bytecode.

Anyway, my point is that co-existing paradigms doesn't solve any more
problems than each paradigm does separately, it just offers alternative
ways to re-implement your program if it's awkward in one paradigm or
the other.  Well, maybe the benefit is that it's easier to communicate
between paradigms because it's all Scheme underneath, instead of
having to go through CORBA or something.  (or .NET, cough cough)

 > And yes, there are things that Swindle doesn't do, but that is what
 > the MOP is for, no?

Well, AOP is basically a simplified/cleaner approach to MOP.  Its
roots are in the Open Implementation project, as a way to get some of
the power of MOP without having to mix base-level code and meta-level
code.  Actually, I think one (the?) innovation of AOP over MOP is
obliviousness: a class doesn't have to explicitly specify a metaclass
to get the crosscutting/incremental behavior.  But this is another whole
controversial topic.

--Doug



More information about the PRL mailing list