"Aspect"の意味…「側面, 様相; 光景; 顔つき;」
アスペクト指向言語とは?
プログラムの保守性・再利用性を高めるためには、できるだけ関連の深いコードを近い場所に集めて、他とは離して記述すべきです。
オブジェクト指向言語はデータ構造とそれに深く関連する手続きを1箇所で記述する構文を提供するため、手続き型言語よりも関心事の分離が「うまくできる場合が多く」、そのために広く普及していると思われます。
しかし、一般には複数のクラスを横断する形で関連するコードを記述せざるを得ない場合も多々あります。つまり、現在のオブジェクト指向言語では、関心事の分離が「できない場合もある」のです。この問題の解決のために最近(2003/06くらい)注目されているのがアスペクト指向言語です。
Java開発経験者が増えてきている業界では、アスペクト指向言語だけでの取り組みではなくJava用Aspect指向言語⇒AspectJが注目されているようです。AspectJに関してですが、まだ開発の大部分を担うには早いように感じるという意見が多いようですが、既存のソースを触らずにメソッドの前後で時間を測定したり、デバッグや検証時に既存ソースを触らず、動かすことができることなどのメリットは兼ね備えているようです。
興味が無い方でも一度は覗いてみましょう。
なぜなら…
後輩の一言!
「業界の時代の波に取り残されますよ。知らないと損しますよ。」
#よき、後輩だ!
アスペクト指向プログラミング 関連情報
http://www.race.u-tokyo.ac.jp/~yoshimi/AOP/index-j.html
アスペクト指向ネットワークプログラミング
http://untrod.keihanna.ne.jp/whitedog/aspect.html
アスペクト指向プログラミングの成熟
http://japan.linux.com/enterprise/03/06/12/036214.shtml
AspectJの開発環境構築や、リンク集
http://www.02.246.ne.jp/~torutk/aspectj/