scala与JVM有多强?

我一直在想,如果Scala有任何特定的属性,使得它固有地依赖于JVM,或者如果它可以在别的东西之上可行。我可以看到JVM的无处不在和持续的改进以及Java和Scala之间的互操作性是否是这个战略选择的强有力的论据。不过,据了解, compromises是在语言设计中制作的。

如果JVM的衰落日子要来,Scala会不会和船一起下去,还是JVM后会有生命?

解决方法

一个项目使Scala的运行时间为 .NET runtime(停产, is improving the compiler backend for future versions of Scala工作人员)和 LLVM(卡住)。而且,Scala有几个后端 – Javascript(例如 scala js),所以我可以说在某种意义上可以从JVM中解除Scala。

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

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

>能够创建本机,独立,可嵌入的二进制文件>在iPhone,Android和其他ARM目标上运行> AOT和JIT编译都完全支持>支持尾部呼叫和延续>一个可理解的代码库>响应维护者>开放改进(价值类,专业化等)

相关文章

共收录Twitter的14款开源软件,第1页Twitter的Emoji表情 Tw...
Java和Scala中关于==的区别Java:==比较两个变量本身的值,即...
本篇内容主要讲解“Scala怎么使用”,感兴趣的朋友不妨来看看...
这篇文章主要介绍“Scala是一种什么语言”,在日常操作中,相...
这篇文章主要介绍“Scala Trait怎么使用”,在日常操作中,相...
这篇文章主要介绍“Scala类型检查与模式匹配怎么使用”,在日...