Java技術者が時間を費やしていること
**************************************************************
_/_/_/_/_/_/_/ ソフトウェア業界 新航海術 _/_/_/_/_/_/_/_/_/
**************************************************************
第207号 2008/7/21 『Java技術者が時間を費やしていること』
▼ まえがき
▼ [銀の弾] (1)Javaに何が起きたのか?
▼ [銀の弾] (2)Java開発では各種フレームワークを組み合わせる
▼ [銀の弾] (3)Java技術者が時間を費やしていること
▼ [銀の弾] (4)銀の弾はない(No silver bullet)
▼ [銀の弾] (5)Ruby on Rails は「銀の弾」となり得るか
▼ [銀の弾] (6)注釈:マーチン・ファウラー、フレームワーク
*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=
まえがき
*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=
蒲生嘉達(がもうよしさと)です。
Bruce A.Tate著「JavaからRubyへ」を読みました。
http://www.amazon.co.jp/exec/obidos/ASIN/4873113202/keiitteanifty-22
これをヒントしにて、ソフトウェア開発の将来について考えていこうと
思います。
*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=
[銀の弾] (1)Javaに何が起きたのか?
*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=
「JavaからRubyへ」の中に「Javaに何が起きたのか?」という
マーチン・ファウラー氏(注1)へのインタビュー記事が掲載されて
います。
ファウラー氏はそこでJavaの現状を次のように批判しています。
Javaな人たちは、ビジネスの中核ではない、周辺を取り巻く
技術要素に時間を費やしすぎています。
技術的な複雑性は、ビジネス課題の解決の役には立ちません。
・・・(中略)・・・
「銀の弾はない」というのは、本質的複雑性と偶発的複雑性とを
区別するということです。
たとえば、給与支払システムの開発では、給与支払の業務ルールは
本質的な複雑性です。
しかし、Javaの労力のほとんどを占めているのは偶発的複雑性です。
EJBの大失敗はこの最たる例です。
・・・(中略)・・・
SpringとHibernateはEJBに比べれば格段に進歩していますが、
それでもまだ、偶発的複雑性に満ち満ちている印象を拭えません。
( Bruce A.Tate著「JavaからRubyへ」より )
*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=
[銀の弾] (2)Javaでは各種フレームワークを組み合わせる
*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=
ファウラー氏が言及している「Spring」と「Hibernate」はJavaの
フレームワーク(注2)の一種です。
Javaのフレームワークというと「Struts」が最も知られています。
Strutsはアプリケーションを、モデル、ビュー、コントローラに
分割することを主目的としたフレームワークです。
それに対し、Springは外部のオープンソースソフトウェアとの連携が
得意なフレームワーク、HibernateはJavaオブジェクトとリレーショナル
データベースとをマッピングするためのフレームワークです。
昨今のJava開発は様々なフレームワークを組み合わせて行われます。
典型的なJavaプロジェクトでは5から10のオープンソースのフレーム
ワークを使用します。
各フレームワークを連携させてアプリケーションを動作させることは、
Java開発での重要な作業です
( Bruce A.Tate著「JavaからRubyへ」より )
*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=
[銀の弾] (3)Java技術者が時間を費やしていること
*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=
上述のとおりファウラー氏は、Java技術者が周辺技術に時間を費やし
過ぎていることを批判しています。
「JavaからRubyへ」に出てくる、同様の批判をいくつか紹介します。
・EJBやSpringのようなアプリケーションを統合するグルーコードを
提供するフレームワークは、開発の生産性を向上させるかもしれ
ませんが、学習曲線の勾配も急になります
・彼らはフレームワークの複雑さを管理するためのツールや技法に
時間を投資しています。
・Javaの良くないところは、もっと素朴なテクノロジを使うべき
ユーザに対しても、エンタープライズフレームワークを使うように
働きかけていることです。
・数え切れないほどの選択肢からフレームワークを正しく選ぶことは
至難の技ですし、選んだフレームワークを使った開発を軌道に乗せる
のもまた難しいです。
(Bruce A.Tate著「JavaからRubyへ」より)
*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=
[銀の弾] (4)銀の弾はない(No silver bullet)
*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=
ファウラー氏がインタビューで述べている「銀の弾はない」
(No silver bullet)とは、「人月の神話」で有名なフレデリック・
ブルックスが1986年に著した論文のことです。
この論文のミソは、ファウラー氏も指摘しているとおり、本質的複雑性
( essential complexity )と偶発的複雑性( accidental complexity )
とを区別して考えているというところにあります。
「銀の弾はない」に興味のある方は、ブログ「新航海術の補足」の
下記の記事を参照してください。
「『銀の弾はない』を深く知りたい方のために」
http://www.gamou.jp/comment/2008/07/post_13bb.html
*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=
[銀の弾] (5)Ruby on Rails は「銀の弾」となり得るか
*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=
Javaもフレームワークも本来は偶発的複雑性(accidental complexity)
を排除するための技術でした。
しかし、皮肉なことに、それらとそれらの組み合わせが複雑化する
ことによって、新たな偶発的複雑性を生み出してしまったのです。
果たして、Ruby on Rails はその偶発的複雑性を打ち砕く「銀の弾」と
なり得るでしょうか?
*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=
[銀の弾] (6)注釈:マーチン・ファウラー、フレームワーク
*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=
【注1:マーチン・ファウラー】
マーチン・ファウラー(Martin Foeler)氏は、米国で活躍している
著名なソフトウェア技術者です。
アジャイルソフトウェア開発宣言の起草者の一人です。
本メルマガでも、第73号「ファウラー氏の請負契約観」で取り上げた
ことがあります。
第73号:ファウラー氏の請負契約観
[B] http://kei-it.tea-nifty.com/sailing/2005/05/post_deaf.html
[H] http://www.kei-it.com/sailing/73-050502.html
【注2:フレームワーク】
フレームワークそのものについては、第202号の「(2)フレームワーク」
を参照してください。
第202号:オブジェクト指向プログラミングは万能選手ではない
[B] http://www.gamou.jp/sailing/2008/03/post_751c.html
[H] http://www.kei-it.com/sailing/202-080324.html
*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=
本メルマガについて
*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=
本メルマガの精神については、発行者サイト
http://www.kei-it.com/sailing/index.html を参照してください。
本メルマガの内容に興味を持つであろう方をご存知なら、是非、
本メルマガの存在を教えてあげてください。
(以下をそのまま転送するだけです。)
---------------------------------------------------
【お勧めメルマガ ソフトウェア業界 新航海術】
⇒ http://www.mag2.com/m/0000136030.htm または
http://www.gampu.jp/sailing/ または
http://www.kei-it.com/sailing/
--------------------------------------------------
このメールマガジンは『まぐまぐ!』 http://www.mag2.com/ を利用して
発行しています。配信中止はこちら http://www.mag2.com/m/0000136030.htm
(但し、慶社員には社内のメーリングリストで配信しています。)
「まぐまぐ!」での読者数は2008年6月20日現在、688名です。
バックナンバーは、発行者サイトまたはブログで、体系として
見てもらいたいので、「まぐまぐ!」でのバックナンバー公開は
最新号のみとなっています。
発行者サイト: http://www.kei-it.com/sailing/
(バックナンバーの全文検索も可能です。)
ブログ:http://www.gamou.jp/sailing/
(人気記事ランキングが見られます。)