posted 21 years ago
Thanks Jorge.
I have used AspectJ on projects involving a few 1000 classes. I am also aware of several projects of a similar complexity that used AspectJ quite successfully. The class of applications range from J2SE-based to J2EE-based projects.
One cost of using AspectJ is increased compilation time, especially when you change just a class or two. However, there are a few ways to counter this issue. The first technique is to break the project into multiple subprojects. This way the compilation can be limited to the subprojects that have been modified. Second technique is to use the incremental compilation mode available in AspectJ 1.1.
Last week, the AspectJ team reported a significant improvement in compilation speed (by factor of almost 8 in certain cases) by adding a few simple optimization (these optimizations will be a part of 1.1.1 release due soon). With AspectJ 1.1 being stabilized, the focus is shifting to adding more aggressive optimizations. Soon, compilation time will not be a real issue.
In the final analysis, the cost of increased compilation time is minuscule compared to the clarity, consistency, and ease of evolution added by an AspectJ-based solution. The time saved by manual coding that will be needed in traditional solution is also significant.
-Ramnivas