AOP の貢献?

AOP が貢献したことって何だろう? 多くの人は、プログラミングに直接影響を与えるような部分を強調するかもしれない。たとえば、横断的関心事をうまくモジュールできるようになったとか。


でも、最近僕が感じているのは、もっと精神的というか意識的というか思考的な部分にも AOP は貢献している気がする。つまり、コードとかプログラムの見方が新しくなった。似たようなことは、ソフトウェアパターンにも言えるかもしれない。


「この部分は横断的関心事だろうか?」・・・なんて考えられるようになったし、


「なぜ、今までこういう解決策が解決策として不十分だったのだろう(答えは、たとえば、その当時のプログラム言語は横断的な要素をモジュール化する方法を提供していなかったので)。今、再び、過去に提案された(解決策として不十分な)解決策を見直したら、どのような視点で見れるだろうか」・・・なんてことも考えられるようになったし、


「今、この解決策が不十分なのは、今使っている言語が適切な方法を まだ 提供してないからじゃないだろうか。」・・・なんてことも思えるようになった。つまり、僕たちプログラマのプログラミングの思考は、どんな言語を使っているのかに深く依存しがち。あるいは、プログラミング言語が提供する機能だけを利用した、解決策を考えがちになるんじゃないか、とか。


当たり前だと思われるかもしれないけど、いまさら、書いてみた。パラダイムのシフトとは、そういうものかもしれない。あるいは、だからこそ、パラダイムのシフトなのかもしれない。過去にオブジェクト指向が出始めたころの開発者の人にとっては、すでに経験したことかもしれない。