Scala 是一种特殊的编程语言,它同时针对 JVM 和 CLR。但是有什么好处呢?是否值得将其视为 F# 语言的可行替代方案?
5 回答
.NET 上的 Scala 是 Miguel Garcia 领导的一项持续努力。最新状态是我们几乎可以在 .NET 上进行引导。我毫不怀疑这会带来一些可靠的结果,但现在做出承诺还为时过早。
从长远来看,我不认为 Scala 是 F# 或 C# 的竞争对手。很难与微软原生支持的语言平等竞争。另一方面,对于希望在 .NET 和 JVM 上运行的商店,我确实看到了 Scala 的一些吸引力。
我从“Scala .NET”中看到的大多数网络搜索点击都来自 2008 年或 2009 年初。Scala 是一种有趣的语言,但我公认的不明智的印象是,它不是工业实力的“可行替代方案” .NET 应用程序。
我看到人们顺便谈论编写可跨 CLR 和 JVM 移植的应用程序,这在理论上是个好主意,但在实践中,我没有看到任何证据表明有人真正做到了这一点。(如果人们确实知道示例,请发布它们。)
我真的很喜欢 Scala,但在它的 .NET 实现的当前状态下:A Big NO。它已经有一段时间没有更新了。JVM 版本确实领先很多。在可预见的未来,我认为 Scala 的 .NET 端口还不够成熟,无法与 JVM 对应。
使用 F# 会更好。
与什么相比的好处?
与仅针对其中一个大平台的不同语言相比的好处?好吧,您可以在两个平台上运行;在不切换语言的情况下从两个平台访问库;
在 .Net 而不是 JVM 上运行的好处?好吧,如果您在 .Net 繁重的环境中工作,这可能更多的是一种要求,而不是一种好处。
与 F# 相比的优势?我不知道 F#,但是当你生活在一个以 .Net 为中心的世界中时,我猜想知道 F# 会比 CLR 上的 Scala 更容易使用。因此,假设这两种语言在某种程度上具有可比性,我更喜欢 F#
据我所知,还没有人真正使用 Scala.NET。如果人们想在 .NET 上运行 Scala 代码,最好的选择是 IKVM。从所有报告来看,Scala 在 IKVM 上运行良好。
Scala.NET 上的工作仍在进行中,看起来它“最终”将是可行的(在完全 Visual Studio 支持的情况下)。这是信息量最大的资源,Miguel Garcia 目前受雇于 LAMP,我认为由 Microsoft 资助,以将 Scala.NET 改进为生产就绪状态。但这可能被记错了……至少,从 2010 年 8 月开始有工作,所以它没有死。
由于堆栈溢出“聪明”的垃圾邮件预防,我只能发布一个链接。所以你必须在谷歌上搜索“IKVM”和“IKVM scala”来了解这些。我包含的链接是最难找到的。