日本と欧米ではPOJOの意義に対して微妙な解釈の違いがあるような気がする

EJB2.1など、開発すべきクラスインターフェースに大きな制約のある侵略的なフレームワークに対してマーティン・ファウラーが広めた概念としてPOJO(Plain Old Java Object)という用語があることは、現在Java開発者であれば、周知のことかと思います。私は当時はEJBなど重量フレームワークの使用を推奨する立場の会社にいたので、POJOという言葉を知ったのは意外に遅く、2004年ごろエンタープライズ アプリケーションアーキテクチャパターン (Object Oriented SELECTION)などの書籍を通して初めて知りました。POJOという言葉には少なくとも以下の2つの意味がこめられていると考えています。

前者はPOJOのPlainの部分に主に関係するところですが、後者のOld Java Objectという部分はファウラーのようなベテランのオブジェクト指向プログラマーSmalltalkやSwingのJavaアプリなどで普通に使ってきたオブジェクト指向プログラミングのテクニックを、Java EEの世界でも普通に使いたいという渇望のようなものを感じます。
そこで、最近ちょっと思うのですが、わが国のJava EEプログラマーの間では、以上のPOJOの特性のうち、前者の要素が強調され過ぎる傾向にあるのではないでしょうか?確かに形の上ではgetter、setterのみ定義した構造体のようなクラスもPOJOと呼んでもよいかもしれませんが、意味のあるロジックをカプセル化しないという意味では本来オブジェクトと呼ぶのはおかしいです。もちろん、Domain Modelの設計はプログラマーに相当のスキルが必要で、外国でもTransaction Scriptパターンのような設計をされることは多いようであり、ファウラー自身もそうした設計をhttp://capsctrl.que.jp/kdmsnr/wiki/bliki/?AnemicDomainModelと揶揄していますが、日本ではプログラマーのスキルをあまり重視しない文化からか、オブジェクト指向が本来必要なところでも採用されていないところがほとんどではないのかと思います。その結果Seasar2など優れたDIコンテナが開発されながら、JSFJPAといったオブジェクト指向的なフレームワークと組み合わせて使われることはほとんどはなく、代わりにStrutsやJ2DAO、iBatisのようなTransaction Scriptと相性のよいフレームワークが使われることが多いようです。その上、開発の簡易化・軽量化という側面が強調される一方で、深いドメインモデルの設計というPOJOの本来目指すべき上流的な設計の観点が軽んじられていると感じます。(私は海外で働いたことがないので実際はわからないのですが、書籍の多さや、インターネットの情報からは海外ではJPAなどのO/Rマッピングフレームワークは割合的にもっと使われているように感じています。)
このような背景には、やはり日本固有の多重下請け構造とか上流と下流をきっちり分けてウォーターフォールで開発するといった手法が関係しているのでしょうか?確かに、Domain Modelパターンを使ってDDDで深いドメインモデルを設計するにはプログラマーが直接顧客(ドメイン専門家)と対話しながらモデルを深めていくというような開発スタイルをとらないとやはり現実問題としては厳しいと思いますので。ファウラー自身の本でもはっきりどちらが優れていると書かれているわけでなく、Transaction ScriptとDomain Modelは扱うシステムの特性に応じて使い分けるべきということは当然ですが、本来Domain Modelを使いたいようなケースでも商習慣や政治的理由から手続き型の設計を利用せざるを得ないというのはプログラマーとしては非常に残念に思います。私は個人的には製造業の部品表管理や金融のデリバティブ商品のリスク管理などDDDが適する分野の開発が多かったので特にそう思うのかもしれませんが、上流でDB設計と画面設計を固めて後のフェーズでロジックだけゴリゴリJavaのコーディングという流れでは、やはり本当の意味でオブジェクト指向の開発を実践することは難しいと思います。
結局、POJO時代になって何が違うかというと、侵略的なフレームワークによって以前は抑制されていたプログラマー本来の設計スキルを最大限に発揮できるようになったということが最重要であると思います。私はPOJOだから初心者にも理解できるようになったという発想は本質を正しく捉えていないと考えます。これはRubyなどより自由度の高い軽量言語が外国で流行ってきているという事実でも同じことが言えると思います。(RubyではJava以上にプログラマーのスキルの差による生産性の違いが大きいですから。)OSSで世界中の達人プログラマーが有用なフレームワークやツールを無償提供してくれた結果、プログラマー本来のスキルをいかんなく発揮できる環境が着々と整ってきているという事実に気づくことが重要だと思います。そういうことで、世間ではオフショア化によって日本人のプログラマーは不要になるという極端な意見もあるようですが、私は逆に今後はこうした新しい環境を理解して、上手に使いこなせるような上級プログラマーの需要は逆に増えて、いろいろな案件で引っ張りだこになるのではないかと期待しています。そして、生産性の高いやり方が浸透するにしたがって、時間とともに生産性の極端に低い、プログラマーのスキルがまったく活かされない馬鹿げた作業環境(派遣PG時代の思い出 - Togetter)は自然と淘汰されていくものと信じたいです。