マキノ式@Blogger

マキノ式@ブログ! Java関連をベースとしてWEBとかプログラミングとか

6.30.2005

LAMPの使いどころ。またはJavaを如何に愛しているか・・・

プロフィールでも書いている通り、私自身は向学やリプレースのためにPerlやPHPのコードを追った以外は、実際のLAMPを殆どを知らない。
しかしながら、CNETの記事(文末参照)における
「Java は古い型の言語で、それほど優れたものだとは考えていない。IBMの『WebSphere』やBEA Systemsの『WebLogic』を稼働させるのに、いったいいくら投資しなければならないか、考えてみてほしい。Javaは、開発資金を際限なく引 き出す存在なのだ」
という部分に関しては、(Javaが古い型の言語であるという点を除いて)まったくその通りであると言える。例えば、インターネット経由で利用するWEBシステムを構築するときにIBMの代表的なミドルウェアを利用するとしよう。
  • IBM DB2 (583,485円)
  • IBM WebSphereAP Express V6.0 (262,500円)
んん~、ソフトウェアだけで845,985(なんと良心的なことに税込みw)必要となる。
正直、鼻血が出るような値段である。ちなみにブルジョワ向けJ2EEセットであるOracle&Weblogicでは3LDKマンションの頭金ぐらいにはなるであろうと思われる。

一方でLAMPの代表的組み合わせのApache、PHP、MySqlトリオは無料である。それなりの技術は必要だろうが経験豊かな人間が居れば設定なんぞ鼻くそであろう。

ここで、LAMP擁護者は得意気に勝利を宣言するのであるが、ちょっと待って欲しい。以下の点に留意してもう一度コストを計算してみよう。
  • MySqlはJ2EEで利用してはいけないという決まりはない
  • J2EE without EJBという選択を行った場合、APには無償でありオープンである我らがTomcatがある
さて、この時利用するのはApache、Tomcat、MySqlであるがいずれも無償である。というよりTomcatとPHPが入れ替わっただけである。(J2EE without EJBはJ2EEじゃないだろ!という諸兄もおられると思うが、そもそも、J2EEの開発者は2層コミットなどの高度なトランザクションマネージメントを 必要としない限り誰もEJBを利用しようとは思ってないわけであり大半のアプリケーションはTomcatで間に合ってしまう。

するとどうだろう、LAMPのコスト的優位は特に無いのではないだろうか?

その上で、LAMPとJ2EE(もちろんEJBを除く)について考えてみよう。私の私見ではLAMPの特徴とは
  • 動的型付け言語であり、スクリプトで記述でき手軽で高速である。
であり、J2EEの特徴とは
  • 静的型付け言語であり、コンパイルが必須であるがポータビリティが高い。
であると思う。

上記から、私が導き出した使いどころは
  • LAMPは迅速な構築や、デザイナーと協業するコンシューマ市場向けWEBサイトの構築に向いている。
  • Javaは環境非依存性やMVCの高度な分離(WEB層、ロジック層、エンティティ層)を必要とするエンタープライズアプリケーションの構築に向いている。
であると思う。さて、ここからJavaヲタであるところの私の屁理屈が始まるのだが、Java利用した開発がLAMPに勝る点として
  • 環境構築の容易さ(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

6.27.2005

Fedora Core 4

諸事情で、マキノ式の自宅サーバでの運用をやめたので、晴れてサーバの統合とOSの入れ替えが出来るチャンスが訪れた。

順番としては、
  • サーバーのコンテンツをロリポップのレンタルサーバに移動
  • DNSの反映を待って、物理的にサーバとデスクトップを統合
  • OSをFC4に入れ替え
で、全部で1週間ほどで問題なく完了した。

FC3もすごかったけどFC4になってさらに完成度が上がっている印象を受けた。
MS-Officeが動作しないことを除けば、インストールした直後からすぐにデスクトップOSとして利用可能であり、インストール作業に関してもWindows2000と同じかそれより簡単である。
ハードウェアに関しても、結構ゴテゴテと装備しているのに全て問題なく認識されている。

ただ、eclipseなどjava周りに関して、SunなどのJDKを利用せずgcc版(?)を利用しているらしく不安だったので、eclipseやtomcatは手動で後ほどインストールすることにした。
ライセンス上の問題なのかな?

今後、FC4で是非触れてみたい部分としては仮想化ソフトであるXenとその周辺技術である。
パフォーマンスなども良い様なので可能であればSolaris10などをインストールしてみたいと思う。

Fedora JP Projectオフィシャルサイト
http://fedora.jp/

直接関係ないけどデスクトップLinux関係の面白い記事
Windowsのユーザビリティが急速に改善
http://japan.linux.com/desktop/05/05/31/0136214.shtml

6.25.2005

意外に電源って大事なみたいよ?

自宅のLinuxデスクトップが全然安定せず、というより以前壊れたので新しい基盤に交換して以来まったく安定動作していなかった。
例えば、警告なくパツーンと再起動したり、Xがフリーズしたりする。

で、色々原因究明をしてみると
  • まず現状のメモリの相性が異常に悪いみたい・・・・
  • そして電源と基盤、というよりパーツの組み合わせの相性が激悪いみたい
パソコンを自分でゴリゴリと作っていた現役の頃は、まだまだ消費電力とか気にしなくてよかったが最近はCPUやビデオカード、HDDの組み合わせで不安定になったりするらしい。
しかもそれがW数が大きければよいというものでもないらしい。

結局、電源を良い物に換え、メモリも買いなおしたら今のところかなり安定中。

非常に参考になった参考サイト
takaman's PC talks
電源ユニット・ケースの知識と実践
http://takaman.jp/case.html

6.07.2005

Mac OS Xには、実は5年前から人には言えない秘密があった

ついに発表された!
MacにIntel製チップ搭載。

http://japan.cnet.com/news/tech/story/0,2000047674,20084207,00.htm
http://pc.watch.impress.co.jp/docs/2005/0607/hot371.htm
http://pc.watch.impress.co.jp/docs/2005/0607/apple2.htm

エキサイティングだ~♪
確かにPowerPCを利用しなくなるのは、マックの特殊性や魅力のひとつが無くなると捉えることもできる。
でも、逆に言えば正面からWindowsに対抗できる土俵に立ったということでもある。

しかもロードマップ的には、MicrosoftのLonghornに正面からぶつけている。
もし、Longhornがスケジュールどおりにリリースされたとしても、インテル採用によって価格的な競争力を持ったハードウェアと魅力的なOS Xであれば、業務系はありえなくとも、ホームエンターテイメント市場では一気にシェアを伸ばすかも知れない。

ああっ、熱いなー。Microsoftもがんばるかもしれない!
ウキウキですな。