« June 2008 | Main | August 2008 »

July 2008

July 22, 2008

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/
(人気記事ランキングが見られます。)

|

« June 2008 | Main | August 2008 »