Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[aspectj-users] Re: [aosd-discuss] AOP myths and realities article published

Inline...

Renaud Pawlak wrote:



Hi Ramnivas, very nice article!

Thanks. I hope it makes developers understand the real value proposition of AOP.


I was a little bit intrigued about an apparent contradiction when I read the paper.

Between

Myth 2: AOP doesn't solve any new problems (which appears to be true in your article...)

and

Myth 12: AOP implementations don't require a new language (which appears to be false in your article)...

What seems awkward to me is: why would we need a new language when AOP does not solve any new problem??

AOP is a new way of solving old problems! None of the modern programming methodologies solve any new problem. I use the following as part joke, part reality during my talks on the same subject: "If you are motivated enough, you could write an enterprise application in assembly language". In a sense, new methodologies merely provide new engineering techniques to combat growing complexity and AOP is no exception.

Therefore, it is the new way that requires using a new language.


If, as you state in your article, "AOP isn't a new computation theory", then why would we need a new language. In other words, what does Java not support in the panel of existing computation theory that requires its extension for doing AOP?

Just for the same reason, Java (or C++, smalltalk etc.) needed to create a new language to solve the same problem that C and perl solved (and continue to do so).


Of course, it is an open question, but I think it is hard to answer without defining exactly what AOP is... which is an exercise I won't even try to do here :)

/Renaud

Ramnivas Laddad wrote:

Hello,

IBM developerWorks has published my AOP myths and realities article (http://www.ibm.com/developerworks/java/library/j-aopwork15). In this article, I examine the following common myths around AOP and discuss their realities:
* AOP is good only for tracing and logging
* AOP doesn’t solve any new problems
* Well-designed interfaces obviate AOP
* Design patterns obviate AOP
* Dynamic proxies obviate AOP
* Application frameworks obviate AOP
* Annotations obviate AOP
* Aspects obscure program flow
* Debugging with aspects is hard
* Aspects can break as classes evolve
* Aspects can’t be unit tested
* AOP implementations don’t require a new language
* AOP is just too complex
* AOP promotes sloppy design
* AOP adoption is all or nothing

-Ramnivas





Back to the top