エンタープライズ・オープンソース[ベスト・セレクション] 第7回 開発言語 @ COMPUTERWORLD.jp
Javaはオープンソースではないって事だからなしの方向で・・・。と言うわけにはいきませんかね。
社内の基幹系のシステムには、Javaや.NETの言語を利用して構築されたものが多いです。
一方でオープンソースの言語であるPHPやPerlなどは、社内の軽量システムに多用されています。
軽量システムというのは、それほど規模が大きくなくまた複雑な要素が絡まないようなシステムです。
例えば、社内SNSなどのようなコミュニティ系のシステムや情報発信ツールとして使われるようなシステムです。
これらは技術的にそれほど複雑でもなく、またユーザーからの要望も多いため小さく初めてブラッシュアップして行くような特性があるため、軽量言語を用いた方が対応しやすいと言うような理由があると思われます。
また、Webページ自体がメインになる(その裏で複雑な計算などを要しない)システムになりますので、PHPのようなHTMLと親和性の高い言語で十分という見方もありますし、開発者を教育・確保しやすいところもあります。
※ 軽量言語というのは、動作が軽いと言う意味ではなく開発がしやすい言語と言う意味です。
もちろんそれらのオープンソース言語を作って基幹系のシステムを構築する事も可能です。
ですが、基幹系のシステムともなると開発規模が膨大になるため、PHPのような言語では保守性を確保する事が難しくなりますし、基幹系システムに求められる大量データ処理のようなロジックを組むのには適していません。
また、エンタープライズ製品の多くがJavaや.Netで構築されているため、それらの親和性を考えれば、オープンソース言語がそこに入っていく余地があまり無いというような理由もあります。
(エンタープライズ製品の多くがJavaや.Netで作られている理由は、オープンソースがそれに向かない理由と裏付けているのだと思いますが)
このようにユーザーのフロントエンドの部分では、オープンソースの言語が多く使われていますが、バックエンドのDBのような分野ではどうかというと、エンタープライズ分野においてはその信頼性からOracleやSQL Serverのような商用DBソフトウェアが多用されています。
どうしても、障害時の復旧対応やサポート保守などを考えると高い金を払ってでも守らなければならないデータがあるという想いからそのような選択が取られています。
コスト面で、PostgreSQLのようなオープンソースソフトウェアの選択肢も社内には確かにありますが、障害時の復旧レベルが下がったりするような制約を同意の上で使ったりするのが常です。
ただ、サーバーの耐障害性に強いものを選択する、高額の保守に入るなどコストが商用のものに比べて格段に下がると言うわけには行かない場合もあります。
少なくとも安定性はどうかと言う議論においては、オープンソースだろうが商用だろうがたいした差は現状無くなってきています。
この手の議論の終着はLinux vs Windowsの構図と同じように、どちらが低コストか?というような所に着地するのですが、私の経験から言うとシステム構築に関しては圧倒的にオープンソースを組み合わせて作った方に分がありますが、その後の保守・運用においては商用ソフトウェアの方が勝っていると言う印象を受けます。
ですので、耐用年数が長いシステムを構築する場合は商用を、短命なシステム(または変化が激しいシステム)にはオープンソースの分野が大きく勝っているのではと感じています。