作ろうとしているシステムに一番いい言語は何かを決めるのはSEと呼ばれる人の仕事のひとつです。顧客の要件を分析し、開発工数やランニングコストなどを総合的に判断して最適なプラットフォームを決定します。が、そのSEがコードすら書けないようなダメ人間だと別の基準でプラットフォームを決めてしまい、その後の開発工程でやっかいな事になるケースが多々あります。別の基準とは『最近流行ってるみたいだから』という、その辺のコギャルと同程度の思考回路です。
最近は何にでもJAVAを使いたがるシステムを良く目にします。スタンドアロンで特定の端末でしか使用しない小さなプログラムなのにEXEにしないでJAVAアプレット。セキュリティが問われる情報を扱うでもなく、IT専門の部署がある訳でもないし、とにかく安価に拠点間を結んで情報共有したいというだけのニーズなのに、自前でサーバを立ててJAVAサーブレット。こんなソリューションを提案するSEの頭の中にあるのは『JAVAなら安心安全で生産性も高くて、なんだか知らんけど立派なシステムなんでしょ?』みたいな、どこで聞いたかわからないあやふやな知識だけです。
JAVAならみんな使ってるから、JAVAなら有名だから、JAVAならオブジェクト指向だから・・・だってJAVAなんだから・・・。
誤解の無いように言っておくと、私自身はJAVAは割と好きな言語なんですよ。特にオブジェクト指向は正しく使えばとても強力な考え方だと思います。しかし上記のようなヘボいシステムでは、まず間違いなくオブジェクト指向とは程遠いコードで書かれています。もっとはっきり言います。世の中の自称JAVAプログラマの95%はオブジェクト指向を知りません。かなり過激な意見だと思うでしょうが、私の経験上では決して大げさではなく実感です。
そのシステム、PHPとMySQLで良くない?
こう言うと訳知り顔の技術者(上記のヘボSEを含む)から一斉攻撃に合います。それを承知で、そんな攻撃を技術的に論破できるだけのスキルを持ち合わせた上であえて勇気を持って主張できる人って本物の技術者だと思います。
技術者はユーザーの満足の為にシステムを開発するべきです。ユーザーが良しとするならそれでいいんです。自身の知的欲求や自己満足の為であってはなりません。そういうのは趣味で好きなだけやって下さい。我々はプロなんですから。