エージェントの調査と作業のほとんどがJavaで行われるのはなぜですか?開発者が.netフレームワークを完全に回避したように見える理由はありますか、それとも.netはJavaよりも商用であるため、研究者の間で話題にならないだけなのですか?
4 に答える
Javaが使用される理由に関する1つの仮説:研究者は主に大学で雇用されています。研究者は通常コードを書きません-ラーメンに住んでいる大学院生は彼らのためにコードを書きます。ほとんどの大学は、工場のJavaプログラマーを運営するための単なる工場です。エルゴ、ほとんどの研究はJavaで行われています。
.NETが使用されない理由に関する別の仮説:Monoをしばらく無視すると、.NETはMicrosoftのOSに関連付けられます。研究センターが提供する作業環境では、MicrosoftOS/ユーティリティが実行されていない可能性があります。
それは確かに商業的実行可能性とは関係ありません-Javaは、その価値のために、.NETと同じように「商業的」です。
- JVMはクロスプラットフォームです。
- Javaは非常に優れた並行プログラミングをサポートしています。
- 考えられるほぼすべてのもののための広範なサードパーティライブラリ。
.net(MS)では、オペレーティングシステムと開発プラットフォームのライセンスに投資する必要があります。Java(Sun)とターゲットオペレーティングシステムは基本的に無料で(サポートは有料)、企業で実証済みであり、言語は広く普及しています。
エージェントベースのプログラミングは、スケーリングシナリオで重要です。.net(MS)でスケールアウトするということは、多額の投資を意味します。
明白な答えは、Javaは(ビールのように)あなたが時間を費やしても構わないと思っているものなら何でも無料であるということです。ハードウェア以外に、Linux(またはOpen Solarisなど)、無料のJVM、大量の無料のAPIを実行できます。これは文化の一部であり、無料で無料で奨励されます。
マイクロソフトのエコシステムは、環境に移行するにつれて、より多くの報酬を得ることができます。Javaの世界で無料のツールの多くは、Microsoftの世界では有料オプションしかありません。
低賃金の大学院生がたくさんいる研究の世界では、人的資源ははるかに安いので、人的資源を節約する商用ライセンスツールの表面的な利点はそれほど多くの利点ではありません。それに加えて、研究プロジェクトは、さまざまなマシンで実行する必要がある可能性があります。それが商業環境で起こったとき、商業エンティティはお金を稼いでいます(たとえば、クラスター内のマシンの数を増やす必要があるeコマース会社-彼らはより多くのトラフィック、より多くの売上、より多くのお金を稼いでいるので、彼らは使うことができますインフラストラクチャを増やすため)。研究では、商用ソフトウェアのライセンス要件の増加は、その基礎となる経済性によって必ずしも正当化されるわけではありません。
つまり、Javaが優先されます。それが起こると、それは誰もが話しているツールになり、その効果は.NETが混雑するところまで雪だるま式になります。
もちろん、上記のすべての例外がありますが、重要なのは、それがトレンドの概要を示しているということです。