Aspect Oriented Programming


There’s been a lot of hype lately over this new fangled paradigm known as Aspect Oriented Programming.   You might have heard it mentioned on another blog or in some technical article on the fringe of the mediaverse.  You probably scratched your head and skimmed over the article, not certain what to make of the whole thing.   That’s what I did the first time I came across it.  The second time, I didn’t even bother reading.  But these kinds of things tend to snowball after a while.  A little reference here, a comment there, and a bunch of feedback from real users eventually gets your attention.  So when you’re a guy like my at a company like this, you have a duty to bone up on new trends, to make every effort to rationalize new ideas and to eventually determine if these new things get folded into the product or not.


 


So I did some research last week and came to some sort of opinion on the whole matter.  To tell you the truth, this new Aspect-Oriented thing has a lot of goodness for the programmer.  The gist of it is the ability to align fragments of your program (orient them) around different Aspects (qualities or representations).  These blocks of code then become molded by their governing Aspect when the code is fully compiled, transforming them and their environs into something much greater.  Your code automatically takes on powers attributed to it by its chosen Aspect. 


 


This is really a revolutionary new way of looking at programming.  I mean, before this I just assumed all code was neutral, behaving only as explicitly stated.  But now everything is different.  Now your code can be aligned to a higher power.


 


The only problem you have is in deciding which Aspect to choose from.  I know there are not that many available yet, as there are only a few listed in the reference material, but some have goodies you just can’t pass up.  I mean, take a look at the Aspect of Bane.  That guy is pretty nasty with an aura of fear and 10 foot reach.  Orcus is even better; Blindsight, Cleave and Death Blow.  I definitely wouldn’t want to mess with any code owned by the Aspect of Lolth either.


 


The only thing that really bugs me, is that so far the trend is for all the Aspects to represent evil gods.  Is this just some wacky coincidence, or is there deeper meaning here?  Sure, you could suspect by inference that all software developed by the Evil Empire would retain some residual evilness, but could that be the norm throughout programmer-dom?


 


And certainly, there are going to be many programmers out there that just won’t desire to have their code adopt a religion (albeit fictional) that is different from their own.  Sure, many programmers are gamers too, but should the two mix?  You know what they say about business and pleasure.


 


But I digress

Comments (8)

  1. Don’t forge Aspect of Asmodeus the Overlord of all dukes of hell…

  2. Matt Warren says:

    Overload of the dukes of hell? I thought that was Boss Hogg.

  3. 🙂

    But if I take your post seriosly, I’m happy that a Microsoftie is interested in AOP…! I blogged about this a few months ago here:

    http://www.jnsk.se/weblog/posts/aop.htm

    Best Regards,

    Jimmy

    http://www.jnsk.se/weblog/

    ###

  4. Anonymous says:

    bq. The only problem you have is in deciding which Aspect to choose from.I know there are not that many available yet, as there are only a few listed in the reference material, but some have goodies you just can’t …

  5. Ultarant says:

    Just wait until the Aspect of Tiamat comes out.

    Cheers!

  6. I guess that the main thing that concerns me with AOP is what level of complexity it adds ( and where ) versus what level of complexity it "removes" ( and where ). Also, the whole issue of productivity comes into play, both on the personal and the team level.

    As a developer, I’m very interested in the idea, although most of the implementation/examples I’ve seen center around logging, tracing, etc – things that have been solved using simpler methods. I think that it CAN be a very powerful programming paradigm. However, if it makes it that much harder to find and fix bugs, well, then it just failed the real-world test applied to any and all new methods.

  7. EdJez says:

    Hey Matt in Microsoft we have an internal alias callled aspect. If you also check Shadowfax out you’ll see a composition filter that was developed for that need. What do folks think would be needed to support better modularization of concerns? Interception? What types of tooling? See ya on channel 9. Help us build an application block. l8r

Skip to main content