4

你怎么看?JVM 会获得对泛型的支持吗?

这很可能不仅需要对 JVM 进行重大更改,而且还需要对类文件格式进行重大更改,但在 VM 上运行的语言将从中受益匪浅。

编辑: Java 语言实际上支持某种泛型作为编译时特性,它向字节码添加了一些强制转换,人们之前必须手动添加。

不对 JVM 或类文件规范进行更改的决定在当时很容易理解,因为他们不想破坏向后兼容性,而 Java 是当今 JVM 唯一重要的语言。

虽然这个决定可能适合 Java 语言,但它大大减少了其他语言必须选择如何在 VM 上实现泛型的自由度。

考虑到 Sun/Oracle 已经宣布让 JVM 成为替代语言的更友好场所,他们是否真的会履行他们的承诺,或者他们认为“InvokeDynamic”的低成本添加就足够了?

4

1 回答 1

5

在我看来,这不太可能。

将这些更改应用到 Java 语言中只会造成太大的破坏。与两种不同的泛型模型的语言和运行时向后兼容性对于设计者来说将是一场噩梦。

如果没有 Java 来推动对 JVM 的更改,很难看出 Oracle 将/可以如何证明做所需工作的合理性。

我看到的唯一可能性是:

  • Oracle 决定开发一种 Java 的后继语言(不向后兼容),它可以更好地处理泛型、闭包和一大堆事情。那将是一个非常勇敢的商业决定,我认为甲骨文没有能力做出这样的决定。

  • 一堆其他人/公司聚在一起,分叉 JVM 规范和代码库。这也是一个勇敢的举动。

我认为 Oracle 不太可能仅仅为了支持他们没有商业利益的语言而对 JVM 进行重大更改。我们在这里谈论的是 Oracle ...业务类型对什么有更严格的控制工程类型比在垂死的太阳天。(嘿......我们可以在这里开始一个完整的杰克万斯主题:-)

于 2010-07-08T23:31:16.250 回答