我一直在想,如果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编译都完全支持>支持尾部呼叫和延续>一个可理解的代码库>响应维护者>开放改进(价值类,专业化等)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。