LAMPの使いどころ。またはJavaを如何に愛しているか・・・
プロフィールでも書いている通り、私自身は向学やリプレースのためにPerlやPHPのコードを追った以外は、実際のLAMPを殆どを知らない。
しかしながら、CNETの記事(文末参照)における
正直、鼻血が出るような値段である。ちなみにブルジョワ向けJ2EEセットであるOracle&Weblogicでは3LDKマンションの頭金ぐらいにはなるであろうと思われる。
一方でLAMPの代表的組み合わせのApache、PHP、MySqlトリオは無料である。それなりの技術は必要だろうが経験豊かな人間が居れば設定なんぞ鼻くそであろう。
ここで、LAMP擁護者は得意気に勝利を宣言するのであるが、ちょっと待って欲しい。以下の点に留意してもう一度コストを計算してみよう。
するとどうだろう、LAMPのコスト的優位は特に無いのではないだろうか?
その上で、LAMPとJ2EE(もちろんEJBを除く)について考えてみよう。私の私見ではLAMPの特徴とは
であり、J2EEの特徴とは
であると思う。
上記から、私が導き出した使いどころは
環境構築の容易さについては説明も必要ないと思うが、Tomcatだけであればhttpd.confと格闘する必要もないし、mod_???の設定やphp、Perl、CGIの設定も必要ない。持ち帰りや分散開発が多いSI業界において実働環境を殆ど意識せずにWindowsPC上(別にLinuxでもOsXでも良いが・・・)で開発できてしまうのは大きなアドバンテージである。
そして、TomcatはどのOSに対しても、まったく同じバイナリが提供されているため通常はどのOSでも同じ振る舞いを示す。(Java実行環境はOSごとに違うが・・・)
さらに、ServletやJSPの仕様は過去数回のリリースにおいてコンテキストなどの取り扱いが一貫しており、仕様が安定している。例えばJ2EE1.2で動作したサーブレットは基本的にJ2EE1.4でも動作する。
最 後に、逆手に取るようではあるが、動的型付け言語ではないことで手軽さが失われる半面、保障された型変換を行うことが出来る。少なくとも数値用の フィールドに誤ってシングルクォートが入っていたときに文字列として扱い見逃す危険性はまずない。(実行時例外は出るかもしれないが、SQLインジェク ションはされない)
とJavaの利点ばかりあげたが、それでもコンシューマ向けや、手軽なサイト構築、複雑なトランザクション処理が必要ないWEBアプリケーションであればわざわざJavaにこだわる必要もないと思う。
なぜなら、ただのアンケートサイトであればPHPなどLAMPで作りこんだほうが、遥かに早く完成するのを見せ付けられたからである。
参考:
注目集める「LAMP」--Javaや.NETに次ぐ第3の潮流になるか
http://japan.cnet.com/news/ent/story/0,2000047623,20084497-2,00.htm
しかしながら、CNETの記事(文末参照)における
「Java は古い型の言語で、それほど優れたものだとは考えていない。IBMの『WebSphere』やBEA Systemsの『WebLogic』を稼働させるのに、いったいいくら投資しなければならないか、考えてみてほしい。Javaは、開発資金を際限なく引 き出す存在なのだ」という部分に関しては、(Javaが古い型の言語であるという点を除いて)まったくその通りであると言える。例えば、インターネット経由で利用するWEBシステムを構築するときにIBMの代表的なミドルウェアを利用するとしよう。
- IBM DB2 (583,485円)
- IBM WebSphereAP Express V6.0 (262,500円)
正直、鼻血が出るような値段である。ちなみにブルジョワ向けJ2EEセットであるOracle&Weblogicでは3LDKマンションの頭金ぐらいにはなるであろうと思われる。
一方でLAMPの代表的組み合わせのApache、PHP、MySqlトリオは無料である。それなりの技術は必要だろうが経験豊かな人間が居れば設定なんぞ鼻くそであろう。
ここで、LAMP擁護者は得意気に勝利を宣言するのであるが、ちょっと待って欲しい。以下の点に留意してもう一度コストを計算してみよう。
- MySqlはJ2EEで利用してはいけないという決まりはない
- J2EE without EJBという選択を行った場合、APには無償でありオープンである我らがTomcatがある
するとどうだろう、LAMPのコスト的優位は特に無いのではないだろうか?
その上で、LAMPとJ2EE(もちろんEJBを除く)について考えてみよう。私の私見ではLAMPの特徴とは
- 動的型付け言語であり、スクリプトで記述でき手軽で高速である。
- 静的型付け言語であり、コンパイルが必須であるがポータビリティが高い。
上記から、私が導き出した使いどころは
- LAMPは迅速な構築や、デザイナーと協業するコンシューマ市場向けWEBサイトの構築に向いている。
- Javaは環境非依存性やMVCの高度な分離(WEB層、ロジック層、エンティティ層)を必要とするエンタープライズアプリケーションの構築に向いている。
- 環境構築の容易さ(EJB抜き)
- OSにほぼ完全に依存しない振る舞い
- 過去数バージョンにおける安定した仕様
- 動的型付け言語ではない
環境構築の容易さについては説明も必要ないと思うが、Tomcatだけであればhttpd.confと格闘する必要もないし、mod_???の設定やphp、Perl、CGIの設定も必要ない。持ち帰りや分散開発が多いSI業界において実働環境を殆ど意識せずにWindowsPC上(別にLinuxでもOsXでも良いが・・・)で開発できてしまうのは大きなアドバンテージである。
そして、TomcatはどのOSに対しても、まったく同じバイナリが提供されているため通常はどのOSでも同じ振る舞いを示す。(Java実行環境はOSごとに違うが・・・)
さらに、ServletやJSPの仕様は過去数回のリリースにおいてコンテキストなどの取り扱いが一貫しており、仕様が安定している。例えばJ2EE1.2で動作したサーブレットは基本的にJ2EE1.4でも動作する。
最 後に、逆手に取るようではあるが、動的型付け言語ではないことで手軽さが失われる半面、保障された型変換を行うことが出来る。少なくとも数値用の フィールドに誤ってシングルクォートが入っていたときに文字列として扱い見逃す危険性はまずない。(実行時例外は出るかもしれないが、SQLインジェク ションはされない)
とJavaの利点ばかりあげたが、それでもコンシューマ向けや、手軽なサイト構築、複雑なトランザクション処理が必要ないWEBアプリケーションであればわざわざJavaにこだわる必要もないと思う。
なぜなら、ただのアンケートサイトであればPHPなどLAMPで作りこんだほうが、遥かに早く完成するのを見せ付けられたからである。
参考:
注目集める「LAMP」--Javaや.NETに次ぐ第3の潮流になるか
http://japan.cnet.com/news/ent/story/0,2000047623,20084497-2,00.htm
0 Comments:
コメントを投稿
<< Home