【问题标题】:How strongly is scala tied to JVM?scala 与 JVM 的联系有多紧密?
【发布时间】:2013-07-26 09:27:10
【问题描述】:

我一直想知道 Scala 是否有任何特定的属性使其本质上依赖于 JVM,或者它是否可以在其他东西之上可行。我可以看到 JVM 的普遍性和持续改进,以及 Java 和 Scala 之间的互操作性如何成为这一战略选择的有力论据。不过,据我了解,出于这个原因,compromises 是在语言设计中制作的。

如果 JVM 衰落的日子到来,Scala 会随船而亡,还是 JVM 之后还有生命?

【问题讨论】:

  • 投票关闭的用户是否会对为什么这是一个不恰当的问题有任何意见?
  • 我没有投票结束,因为我个人觉得这个问题很有趣 - 然而,说实话:编程问题在哪里?也许更适合 SE 程序员。
  • 我记得读过 akka 只能在 Oracle 热点或 openJDK 上工作,但找不到参考

标签: scala jvm


【解决方案1】:

有些项目让 Scala 在.NET runtime(已停产,开发它的人is improving the compiler backend for future versions of Scala)和LLVM(卡住)上运行。此外,Scala -> Javascript 有多个后端(例如scala js),所以我想说在某种意义上可以将 Scala 从 JVM 中解开。

同时许多 Scala API 依赖于 Java API,许多优化和内部工作都是针对 JVM 实现的。 Scala without JVM,Scala with it's own virtual machine 等上有很多关于邮件列表的讨论,例如this one,但据我所知,官方声明是支持非主流 JVM以及(例如Avian),而不是拥有自己的运行时。这样 Scala 可以在 iOS 和 Android(当然还有 PC)上运行。

同Simon Ochsenreither noted, Avian is not just yet-another JVM,但与HotSpot相比具有一些明显的优势:

  • 能够创建原生、独立、可嵌入的二进制文件
  • 在 iPhone、Android 和其他 ARM 目标上运行
  • 完全支持 AOT 和 JIT 编译
  • 支持尾调用和延续
  • 易于理解的代码库
  • 响应式维护者
  • 开放供改进(价值等级、专业化等)

【讨论】:

  • @pedrofurla 是的,顺便说一句,这是基于 JVM 的另一个优势
  • @om-nom-nom 我已经重写了最后一段的某些部分,请检查我是否设法保留了您的声明
猜你喜欢
  • 2011-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-12
  • 2011-05-24
  • 2013-03-11
  • 1970-01-01
相关资源
最近更新 更多