这是我目前唯一知道的提问方式.据了解,Scala使用Java虚拟机.我还以为Jruby也是.Twitter将其中间件切换到Scala.Could they have done the same thing and used Jruby?
他们可以从Jruby开始,而不是一开始就因为扩展问题而从Ruby迁移到Scala吗?我不明白Jruby是什么吗?我假设,因为Jruby可以使用Java,所以它可以扩展到Ruby无法扩展的地方.
在这种情况下,这一切都归结为静态和动态类型吗?
这是我目前唯一知道的提问方式.据了解,Scala使用Java虚拟机.我还以为Jruby也是.Twitter将其中间件切换到Scala.Could they have done the same thing and used Jruby?
他们可以从Jruby开始,而不是一开始就因为扩展问题而从Ruby迁移到Scala吗?我不明白Jruby是什么吗?我假设,因为Jruby可以使用Java,所以它可以扩展到Ruby无法扩展的地方.
在这种情况下,这一切都归结为静态和动态类型吗?
Scala是"可伸缩的",因为库可以通过某种方式对language进行改进,使扩展看起来像是语言的一部分.这就是为什么演员看起来像语言的一部分,或者为什么BigInt看起来像语言的一部分.
这也适用于大多数其他JVM语言.它不适用于Java,因为它对它的基本类型(Int、Boolean等)有特殊的处理,对运算符有特殊的处理,繁琐的语法可以清楚地说明语言中构建了什么,什么是库,等等.
现在,Scala比dynamic languages on the JVM更具性能,因为JVM不支持它们.JVM上的动态语言必须采用t反射,这非常缓慢.