言語を選ぶ基準

 前回のエントリで私は Ruby 党と言いながら Ruby を批判したかのようにもとれるので、改めて Web アプリにおける私の採用言語の選定基準(というほど厳密ではないが)について書いてみます。

 まず、本番稼動環境がどういうところなのかというのが最大のポイントです。当たり前ですね。

  • 俗にいう「ふつうの」レンタルサーバで稼動するインターネット向けサービスの場合 → PHP
    • Java が使えるレンタルサーバはやっぱり少数派で、「ふつうの」とは言えない。でかい仕事しかしたことない人は知らんと思うけど。
    • Apache モジュール(mod_php)版ではなく CLI 版しか使えないなどの制限があるなら PHP ではなく Perl にするかも。
  • 多くても同時に使うのが10人前後ぐらいのイントラ向けサービスの場合 → Ruby(on Rails
    • Mongrel で動かす。Apache と連携みたいなめんどくさいことはせず、場合によっては Windows 上で運用。
    • 画像処理や帳票出力、LDAP 連携などがあるなら JavaTomcat か Jetty で動かす。
  • インターネット向けサービスでかなり自由度のあるサーバが使える場合 → Java
    • アクセス数がそんなになさそうなら Ruby on Rails。正直、高負荷下での Ruby on Rails の稼動ノウハウがまだ少ない。

 それから、多人数(特に複数の会社)が関わるプロジェクトならばまず Java が選択肢にあがります。それは周辺ツールの充実さですね。Java はコーディング規約も「これ!」というのがありますし(私のオススメは↓の本)、そのチェックツール(CheckStyle)の入手性も良好です。

超図解 Javaルールブック (超図解シリーズ)

超図解 Javaルールブック (超図解シリーズ)

 JUnitMaven、Continuum、FindBugs などのテストツール、構成管理ツールで高品質なものも容易に入手できます。これが Java の強み。ある程度以上の規模になってくると、こういったツールの便利さが身にしみてきますね。

 逆にこういったツールを Ruby でも容易に入手できて、Eclipse などの単一の IDE から使用できれば、かなり Ruby on Rails がしめる割合が増えるだろうなと思っています。