1

Java をプラットフォームに依存しないと呼ぶのは、Java には任意のプラットフォームでバイトコードを独立して実行できる仮想マシン JVM があるためです。

ただし、そのシステムに JVM をインストールする (または常駐させる) 必要があります。

では、他の既存の言語用に JVM のような仮想マシンを作成し、それらの言語をプラットフォーム非依存と呼んでみませんか?

4

3 に答える 3

2

頭の上にいくつかの理由を考えることができます。

長いです

時間がかかる。基本的に、高水準言語と中間言語 (バイトコード) の 2 つのプログラミング言語を作成しています。つまり、2 つの設計を考え、コンパイラ、レクサー、リンカー、および付随するすべてのツールを作成します。特に Java や C# などの成熟したものと比較する必要があるため、人気が出るという保証はありません。次に、そこにあるすべてのオペレーティングシステム、すべてのファイルシステム、および同様の変数依存関係ごとにコーディングする必要があります (文字通りではありませんが、多ければ多いほど良いです)。Oracle でさえ完璧な仕事をしているわけではありません。I/O を参照してください。

あなたは本当に良いパフォーマンスを達成する必要があります

つまり、ユーザーが気付かないうちに、実行中にコードをコンパイルして最適化する必要があります。初めて(バイトコードに)コンパイルするだけでは十分ではありませんでした。一朝一夕でできるものではありません。また、JVM、.NET、ART など、すでに存在する多くのものを打ち負かす必要があります。

それにもかかわらず、世の中には多くの仮想マシンがあり、おそらくさらに多くの仮想マシンが作られています。また、既に作成された VM のバイトコードにコンパイルする方が簡単なので、たとえば JVM で動作する Jython がありますが、その高レベル部分は実際には (非常に似た) Python です。

思い出したので追加します。

編集:用語を混同しているように見えるので、これを明確にするために:プラットフォームに依存しないアプリを作成するためにVMは必要ありません(すべてのOS用にコンパイルできます)。すべてのVMがすべてのOSで動作するわけではありません(例. NET は Windows でのみ動作します)。

于 2014-08-23T20:30:06.180 に答える