Frage

Was denkst du? Wird der JVM jemals Unterstützung für Generika erhalten?

Wahrscheinlich, dass dies nicht nur wesentliche Änderungen an der JVM erforderlich wäre, sondern auch auf das Klassendateiformat, Die auf dem VM laufenden Sprachen würden jedoch von ihm erheblich profitieren.

edit: Die Java-Sprache unterstützt tatsächlich einige Arten von Generika als Kompilierungszeitfunktion, die dem Bytecode einige Güsse hinzufügt, mit denen die Leute vorher manuell hinzufügen mussten.

Die Entscheidung, keine Änderungen an der JVM- oder der Klassendatei-Spezifikation einzuführen, wurde zu diesen Zeiten gut verstanden, da sie nicht rückwärts kompatibel brechen wollten, und Java war in diesen Tagen die einzige bedeutende Sprache für den JVM.

Während diese Entscheidung möglicherweise für die Java-Sprache angemessen sein könnte, hat sie die Menge an Freiheit erheblich reduziert, dass andere Sprachen entscheiden müssen, wie sie Generika auf dem VM implementieren möchten.

In Anbetracht dessen, dass Sonne / Oracle ausgerufen hat, um den JVM ein freundlicher Ort für alternative Sprachen zu machen, werden sie tatsächlich das tun, was sie versprochen haben oder in Betracht ziehen, dass die geringe Kostenzugung von "Invokedynamic" ausreicht?

War es hilfreich?

Lösung

Meiner Meinung nach ist es unwahrscheinlich.

Es wäre einfach zu störend, um diese Änderungen an der Java-Sprache anzuwenden. Sprach- und Laufzeit-Rückwärtskompatibilität mit zwei verschiedenen Generika-Modellen wären ein Albtraum für die Designer.

Und ohne, Java, um Änderungen an der JVM zu fahren, ist es schwierig zu erkennen, wie Oracle die erforderliche Arbeit rechtfertigen würde.

Die einzigen Möglichkeiten, die ich sehe, sind:

  • Oracle beschließt, eine Nachfolgersprache an Java zu entwickeln (das ist nicht rückwärts kompatibel), die Generika, Verschlüsse und ein ganzes Bündel der Dinge besser macht. Das wäre eine wirklich tapfere Geschäftsentscheidung, und ich glaube nicht, dass Oracle es fähig ist, es zu machen.

  • Ein Bündel anderer Personen / Unternehmen kommen zusammen und gabele die JVM-Spezifikation und die Codebase. Das ist auch ein tapferer Umzug.

0 Kontrolle darüber, was die Engineering-Typen tun, als in den sterbenden Sonnenzeiten. (Hey ... wir könnten ein ganzes Jack-Vance-Thema hier beginnen: -)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top