軽快なJava -Better, Faster, Lighter Java-

この本は,システムの設計思想について述べている書籍と言える.つまり,一つですべてをカバーできるような重装備のプロダクトに依存せずに目的に応じて軽装備のプロダクトを適切に組み合わせること,仕様書やユースケース図などの上流工程から延々と始まる開発に対するXPの正当性などだ.ServletJSPは使っていても,J2EEは使わなかった(ついて行けなかったが正しい?)私にとっては,非常に共感できる内容だ.


軽快なJava―Better,Faster,Lighter Java

軽快なJava―Better,Faster,Lighter Java


最近よく聞くJavaへの苦情は,J2EEEJB重厚長大さに対するものか,複数の軽量プロダクトのつかいこなしの難しさに対するものが多い.本書は,前者に対する論理的な分析と,後者に対する示唆を与えてくれるだろう.


過激な「訳者まえがき」も一見の価値あり.また,著者が各章の冒頭で述べている例も,非常に面白い.


ただし,HibernateやSpringは,その一例として紹介されているにすぎないので,別の資料を参照した方がいいだろう.たとえば,私の友人がもうすぐ「POJOによるJava Webアプリケーション開発」のような題名で,JSF、Spring、Hibernateを用いた開発についての本を,毎日コミュニケーションから出すらしいので,これは入門書としてよいかもしれないと期待している.


一つ強調しておきたいのは,本書ではJCPにおける仕様策定を実装なく,机上で作っていると強く批判しているが,実際にはJSRによってまったく違うことだ.たとえば,JSR-204でいえば,考えられるアプローチの中で実現可能性があるものを試験実装し,それを使用したプログラムまで作成して検討した.その結果,仕様は非常に簡素なものになっている.


最後に,私は軽量設計vs重量設計のような論争が生じる環境こそ,健全な証拠ではないかと思っている.それは,Javaに限らず,XML Schema vs Relax NGSOAP vs RESTなど,さまざまな箇所で見られるが,競合があるからゆえに両者の技術が磨かれていくからであり,またいかなる場合でも選択肢が存在するからだ.


たぶん,短期的な視野では,サーバ系のプログラミングは,Microsoftによって与えられた唯一の実装だけが存在し,全体の方針が統一されている.NETの方が学ぶことも少なく,仕事しやすいという評判は本当なのだろう.


しかし,競合がある環境の方がより高みに達することができることと,他ライブラリやフレームワークの存在をあまり想定していないモノリシックなアーキテクチャパラダイムシフトに追従しようと思ったら,ほぼ丸ごと捨てて,新しいものとして作りなおさねばならない可能性もある.両者のアプローチの違いにより,数年後の進化形態にどのように違いが出てくるかを興味を持って見守っていきたい.アーキテクチャ進化論?いやアーキテクチャ考古学か(苦笑)