AOP use cases

Eric Eide eeide at cs.utah.edu
Mon Apr 26 11:32:45 EDT 2004


"Will" == Will Stuyvesant <hwlgw at hotmail.com> writes:

	Will> One of my original points was that Java needs "AOP" to solve
	Will> problems imposed by the static typing system.  The links you
	Will> provide are Java-centric.  A better designed programming
	Will> language, like the dynamicall typed language Python, does not
	Will> need "AOP".  It is up to the software designer to make good
	Will> designs, orthogonal where needed, with separation of concerns,
	Will> etc.

I think that we disagree about the nature of AOP.  Perhaps I should review your
previous posts to see why you think AOP is primarily about working around
"problems imposed by the static typing system."  I don't agree with this claim.

To me --- and I think the AOSD literature and community supports this view ---
AOP is about structure and problem decomposition, just like OOP is about these
things.  AOP is not primarily about working around technical problems in a base
language, Java or otherwise.

Not all AOP research is done in Java, or even in statically typed languages.
See, for instance, a recent paper about implementing an AOP system in Scheme:
http://www.cs.brown.edu/~sk/Publications/Papers/Published/tk-ptcts-adv-ho-lang/

You claim that Python doesn't need AOP because it is "a better designed
programming language."  If you believe that, what about OOP?

Do you think that Python needs OOP?  If so, why?  I don't mean to start a holy
war, but consider that Scheme does quite well without inherent OOP.  Should we
consider Python's support for OOP evidence that Python is defective in some way
with respect to Scheme, and that Scheme is therefore "a better designed
programming language" because it "needs" neither AOP nor OOP?

Thank you for explaining your point of view!

Eric.

-- 
-------------------------------------------------------------------------------
Eric Eide <eeide at cs.utah.edu>  .         University of Utah School of Computing
http://www.cs.utah.edu/~eeide/ . +1 (801) 585-5512 voice, +1 (801) 581-5843 FAX



More information about the Python-list mailing list