15

目前 Scala 只在 JVM 上运行,CLR 的实现已经过时。

但目前有一些声音表示,微软有兴趣为 .NET 的最新 Scala 端口提供资金。

考虑到甲骨文方面缺乏任何计划或监督如何处理 Java/JVM/生态系统,Scala 开发人员如何做好准备,最终可能没有像样的平台可以运行 Scala?

有没有计划在未来有一些“独立”的 Scala VM 实现,它将 Scala 的功能映射到一些字节码/VM,而不是不得不忍受当前 VM 实现中的所有这些遗留错误(没有泛型、协变数组、奇怪的注释,没有尾调用等)?

4

3 回答 3

18

这是关于 VM 的另一种观点:

纵观全局,虽然并不是 Sun 最耀眼的时刻,但在 JDK/相关事物上贴上 GPL 许可证实际上导致了整个 JVM 平台完全独立于 Oracle 的美妙局面。我的意思是,虚拟机Java 无关,垃圾收集器Java 无关,最重要的是,Java 程序员并没有真正与Java 和 Oracle 相关联。

作为一名 Java 程序员,我想说我们赢了——如果 Oracle 决定弃用 Java 世界中的所有东西以期获得更大的利润,我们可以抓住 VM 和现代语言(如 Scala),让拉里·埃里森(Larry Ellison)在他的游艇上航行到日落我们关心的一切。

于 2010-07-08T18:08:28.800 回答
10

Scala 的当前实现非常关注 JVM。Scala 库中的很多内容都依赖于 Java 标准库中的类,并且 Java 类也暴露给用户程序。

如果在 CLR 或 LLVM 等其他平台上存在 Scala 实现,那么为当前面向 Java 的 Scala 实现编写的程序将不会自动与那些其他实现兼容(除非这些实现竭尽全力支持这些类在 Java 中可用)。

我同意 Randall 的观点,即 JVM 不会很快消失。它可能是最成功和最广泛的虚拟机平台,部署在数十亿台设备上,从智能卡和手持设备到最大的服务器。事实上,Java 编程语言可能比 JVM 本身消失得更快。没有理由担心 JVM 在可预见的将来会消失。

即使在不太可能的情况下——这真的重要吗?您仍然可以在其他平台之一上使用您最喜欢的编程语言 Scala 进行编程。

于 2010-07-08T18:02:59.327 回答
5

正如 Esko 所说,我不会太担心由于 Oracle 管理不善而导致 JVM 的死亡。

到目前为止,我确实以另一种方式担心 JVM:JVM 没有被构建为多种语言的平台。在 JVM 上运行的大多数语言都使用动态类型,并且在某种程度上摆脱了编译为字节码的复杂性。

Scala 正在编译为字节码,并且是由编写 Java 编译器 (1.1-1.4) 的人 (Odersky) 考虑到 JVM 构建的。Scala 是唯一由对 JVM 有深入了解的人编写的语言,我们真的不知道他做这件事有多难。

我担心 JVM 最终会因为它不是一个多语言平台而逐渐流行。

于 2010-07-08T21:41:42.037 回答