seraphyの日記

日記というよりは過去を振り返るときのための単なる備忘録

アスペクト指向入門

アスペクト指向入門 -Java ・ オブジェクト指向から AspectJプログラミングへ
アスペクト指向入門 -Java ・ オブジェクト指向から AspectJプログラミングへ
以前、cppllというメーリングリストで、C#に検査例外が組み込まれていないのは言語的欠陥だ、いや、JAVAより後発であるにも関わらず、この品質にかかわる重大な言語機能を省くとは怠慢だ、みたいなことを書いたら、即行で、「ヲマエハ勉強ガタリナイ。カオアラッテデナオセ」みたいに瞬殺されました。
アスペクト指向という言葉を覚えてから、「アスペクト指向とはこんな感じか?」とJ2SE1.3のDynamicProxyとか使ってみて、いや、アスペクト指向とは、この名のとおり、パラダイムであってメカニズムの問題ではないのだな、と気が付く。
最近はアスペクト指向信者になりつつあります。
まだ、その前段階のDI信者ですが。
でも、AspectJとか、Springとかは実際のところ、そのむかし、C++がCのフロントエンドだったころのような感じなんですよね。本来ならば仮想マシンが、こうゆうことをやれるようにしておくべき。
たとえば、BEAのJRockitのような感じで。


この本についていえば、すでに出ている「AspectJによるアスペクト指向プログラミング入門」よりも、JAVAのメカニズムにそった説明がされていて分かりやすい。
3人の対話形式で進められる解説本は要点がボケたり、つまらないギャグで話の腰を折ったりするのが普通だが、ここでは雑談のようなところも含蓄ある「旨み」があり、予想に反して、非常に読みやすいものだった。


ちなみに、個人的にはC++JAVAオブジェクト指向がもつ例外で型システムを「借用」したハンドリングは、なんとなく逆なような気がしているのですが。逆型システムというべきかな。うまく説明できないな…。このあたりがアスペクト指向などのようなケースで検査例外が阻害要因になる一因ではないか、というような漠然とした思いがある。
まあ、オブジェクト指向とは直接関係ないので閑話休題