Java vs .Net for Web application

面白そうな記事を見つけた。対比させるべきなのは.Netだと思うのだが、なぜかWindowsを持ってきているあたりに、広告色の強さを感じた。ちょっとした感想を述べておく。

Ref:Webアプリケーション・プラットフォームとしてWindowsを選択する7つの理由<前編>

前編では、次の項目について解説をしている。

  1. 標準化されたプラットフォームで高い開発生産性
  2. Webアプリからリッチ・クライアントまでを広範にサポートする統合開発環境
  3. 高いパフォーマンスと堅牢性を実現可能

たしかに、リッチクライアント開発へ業界が移行すると、デスクトップアプリケーション用開発環境が充実しているWindowsは、開発環境としては魅力がでてくるのかもしれない。ただし、それと実行環境としてはどうか、というのは別に分析しないといけないだろう。実際、JBossなどはWindowsでも動作するようになっているので、「Windows+.NET Framework/Linux+フリーJavaの構造」の図は恣意的であるように見える。IISだとOSの選択肢が少なくなるという点をわざとぼかしているのではないだろうか。また、読者にはJBossはLinuxなどのUNIX系でないと動作しないという誤解を与えかねない。知っている人が読めば、そういう問題は起きないが、きちんとした比較をしようとするときは、こういった点には神経を使って行うべきだと思うので、ちょっと残念だ。


ちなみに、「これから求められるのは高いクロスプラットフォーム開発性」ではないかと個人的には考えている。運用プラットフォームとしてはWindowsでもLinuxでも、運用者がセキュリティ対策をするのにしやすいと考えるプラットフォームを使えば良いのであって、開発側はどちらでも良いので、とにかく動作するアプリケーションを提供できれば良いだろう。それと、「クライアントサイドとサーバサイドのプログラムを両方とも連携させながら開発できる環境」も重要だ。サーバサイドはリッチなリソースで動作させることを前提にした開発、クライアントサイドは複数のデバイスで動作させることを前提にした開発、となるのでこれらのプログラム全体を効率よく開発できなければならないはずだ。サーバサイドとモバイルデバイス用アプリから、デスクトップアプリやリッチクライアントを含むクライアントサイドへ守備範囲を広げているのがJavaであり、デスクトップアプリのクライアントサイドから、サーバサイドへ守備範囲を広げているのが.Netなのではないだろうか。勢力図はそんなに簡単に2極化されているわけではないのだ。

最後の「パフォーマンスと堅牢性」については、Windowsよりの調査会社が出した結果だけをもって断定しているのは中立性がない。もっとも記事にPRとついているから広告記事だということで仕方がないのかもしれないが。また、堅牢性に関しての評価はないように見えるので気になる。HTTPリスナをカーネルモードで動作させるようにして、その他はユーザモードで動作させるから堅牢であると言っているのだろうか。Javaだとどうなっているのかを対比させて説明してもらいたいところだ。

ちなみに、チューニングしなくても性能が出るというのは、かなり眉唾な話ではないかと思う。素人が乗れる車を作っているのは良いとしても、裏方ではものすごいチューニングがされているものだ。オートマ自動車のプログラマはチューニングをしていないはずがないだろう。Windowsプラットフォームを信じて開発していけば良いというアプローチは、今後の日本における情報技術力を維持・向上させるという意味から考えると、鵜呑みにするのは危険ではないかと思った。一方的に「Windowsは捨てるべし」という話ではない。必要な知識、技術といったものは、そう簡単に手放してはいけないのだから、あまり低レベルな部分でWindowsを推薦してほしくない、という意味だと思ってもらいたい。

同じカテゴリの記事: Java