Einzelnen Beitrag anzeigen

jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#5

AW: Sind Java-Varianten eigentlich 100% austauschbar, womöglich "Binärkompatibel" ?

  Alt 5. Jul 2020, 11:23
Binär kompatibel sicher nicht, meinst Du vielleicht API?

Java als Sprache ist erstmal eine Spezifikation. Es gibt verschiedenste Implementierungen (glaub früher irgendwann auch mal eine von MS). Der Anspruch, auf unterschiedlichsten Plattformen lauffähig zu sein ergibt in Konsequenz, dass eine binäre Kompatibilität gar nicht gegeben sein kann. Ob x86/64, ARM, MIPS, ... allein die Hardwareplattformen ergeben zwangsläufig gewisse Unterschiede. Wenn z.B. keine FPU da ist, muss auch die Implementierung anders ausfallen.

Der Anspruch (der unterschiedlichen Anbieter) ist natürlich auch, fehlerfrei und vollständig eine Spec zu erfüllen. Java selbst definiert da ja auch unterschiedliche Ranges, bspw. mit Java Enterprise. Java auf dem CISCO Telefon und in der berühmten Waschmaschine oder auf einem High End Rechner, die Implementierungen sind sicher nicht überall identisch.

Wenn man die im Bild aufgeführten Beispiele nimmt und davon ausgeht, dass sie alle das gleiche können (auf einem herkömmlichen PC mit einem herkömmlichen Betriebssystem wie Windows, Linux, Mac OS..), ergeben sich die Unterschiede bspw. bei der Integration aber wahrscheinlich vor allem bei der Performance. Das klassische Argument gegen Java war die niedrigere Performance. Je nach Verbreitung der Plattform wurde und wird an dieser Ecke stark gearbeitet und es gibt heute sehr schnelle Implementierungen.

Wenn man tatsächlich für unterschiedliche Plattformen entwickeln möchte, kann man mindestens an dieser Stelle nicht ohne weiteres davon ausgehen, auf allen Plattformen vergleichbar schnelle Resultate zu erhalten (bei vergleichbarer Rechenleistung der CPU).

Im Grunde ist diese Problematik identisch zu den Compilern, die ja zeitlich nie so nahe an der Hardware sind, wie die Hardware Hersteller es gerne hätten. Kompiliert man alten Code mit modernen Compilern, ist er oft bedeutend schneller, ohne das der Code geändert wurde.
Gruß, Jo
  Mit Zitat antworten Zitat