Aspect Programming Module
Hung Jung Lu
hungjunglu at yahoo.com
Thu Apr 15 07:55:30 CEST 2004
hwlgw at hotmail.com (Will Stuyvesant) wrote in message news:<cb035744.0404141130.170f51c4 at posting.google.com>...
> AOP is *not needed* for Python programmers. Plain and simple.
> Don't understand? Try this:
> "AOP is a contrived way to get around the limitations of a statically
> typed language."
I beg to differ.
Python does not even have codeblocks. So how can you say AOP is not
needed for Python programmers?
It's another issue that current AOP "products" a la AspectJ are trash.
But the concepts from AOP are not only correct, but really necessary
in large-scale projects.
Most people have a superficial understanding of AOP. I don't blame
them, since the papers by Kiczales et al. and probably all other
papers on AOP are a mess.
Anyway, I have talked about AOP long enough in the Python mailing
list. I won't repeat here.
I do have a few comments:
(a) AOP should have been called SOP (Subject Oriented Programming)
from a start.
(b) AOP is code factorization in the horizontal direction:
organization of code by action, not by data.
(c) AOP is in a way the Fourier Transform of OOP.
(d) AOP will not be popular until there is proper IDE/code-viewer or
some other novel techniques at runtime. It's coding in three
dimensions, and humans are only good with two. Asking an average
programmer to factorize code manually by objects (vertically) and by
subjects (horizontally), and use metaprogramming for weaving (a la
functional programming), is a bit too heavy. Until the day when all
this is done simply by mouse clicks (like editing the header and
footer information of a Microsoft Word document), AOP will be used
only by advanced programmers addressing large and complex projects.
More information about the Python-list