Wie relevant ist die Verwendung von JVM heute?

425
R S

Haben wir heute nicht genügend Compiler (für verschiedene Plattformen)? Python zum Beispiel - es wird als plattformübergreifende Sprache angesehen.

0
Im Gegenteil, es gibt viele in Java geschriebene Tools zur Systemverwaltung und Netzwerküberwachung, die nicht von einer bestimmten Architektur abhängig sind. ManageEngine OpManager, um einen zu nennen, den ich verwende. Es gibt auch Entwicklungsumgebungen wie Eclipse und ganze Suites wie OpenOffice. boot13 vor 8 Jahren 1
Warum wurde Eclipse beispielsweise für eine virtuelle Maschine geschrieben? Warum verwenden Sie keine übliche kompilierte Sprache? Eclipse braucht nur auf dem PC. R S vor 8 Jahren 0
Für den Fall, dass Sie nicht wissen, @ boot13, gibt es auch [andere Programmiersprachen, die auf der JVM ausgeführt werden] (https://en.wikipedia.org/wiki/List_of_JVM_languages). (Und ich glaube nicht, dass OpenOffice auf der JVM ausgeführt wird, obwohl frühere Versionen Java für Scripting oder ähnliches verwendet haben.) Arjan vor 8 Jahren 0
Warum denken Sie, Leute mit Linux oder Mac OS X verwenden Eclipse nicht? (Übrigens ist diese Frage hier kein Thema.) Arjan vor 8 Jahren 0
Wissen Sie, wie viel Arbeit ein Compiler tatsächlich erstellt? a CVn vor 8 Jahren 1
@Arjan, PC - Ich meine, Personal Computer, ein Desktop-Computer. Wo ist so ein Thema? R S vor 8 Jahren 0

1 Antwort auf die Frage

0
grawity

Es gibt viele solcher Codes. Jeden Tag nutzen Sie Dutzende von Websites, die dies benötigen. Obwohl sie heutzutage meistens in JavaScript und manchmal Flashs ActionScript geschrieben sind, bleibt der allgemeine Gedanke gleich.

(Denken Sie daran, dass Java hauptsächlich für Applets in Websites eingesetzt wurde - ähnlich wie später in Flash und heute in JavaScript.)

Es gibt auch viel mehr Architekturen als "PC und Mobile". In den letzten zwei Jahrzehnten verwendeten PCs ein paar Dutzend verschiedene CPU-Architekturen - zum Beispiel: 68000, PowerPC, x86, amd64, Alpha, SPARC, ARM, ARM64 - und das sind nur die beliebtesten .

Das schafft also Probleme beim Verteilen der kompilierten Programme.

Mit nativer Code, jeder Besitzer würde die solche Website muß viele verschiedene Versionen des gleichen Programms verteilen - ein für jede CPU - Architektur (denken Sie daran, es ist nicht nur zwei), oder vielleicht sogar für jedes O × CPU - Kombination (wie verschiedene Betriebssysteme unterschiedliche haben Dienste, verschiedene APIs, unterschiedliche Aufrufkonventionen auf derselben CPU).

(Selbst in derselben Architektur werden viele Programme, die für Intel i686 kompiliert wurden, nicht auf i486 ausgeführt, auch wenn dies technisch gesehen x86 ist - jedoch mit unterschiedlichen Funktionen. Zum Beispiel kompiliert Debian Linux alles für i486, sodass es nicht verwendet wird alle modernen CPU-Funktionen, was bedeutet, dass Programme möglicherweise etwas langsamer sind. Auf der anderen Seite ist Arch Linux für i686 kompiliert, sodass es auf einer alten i486-CPU nicht ausgeführt werden kann.)

Mit bytecode kann Sun / Oracle JVMs für alle Architekturen verteilen, und Webmaster müssen nichts anderes tun, sondern nur eine .jar-Datei für alle.