Scala作为新的Java?

2022-09-01 08:16:12

我刚刚开始在空闲时间探索Scala。

我不得不说,到目前为止,我印象深刻。Scala位于JVM之上,与现有的Java代码无缝集成,并具有许多Java所没有的功能。

除了学习一门新语言,切换到Scala有什么缺点?


答案 1

好吧,缺点是你必须为Scala做好准备,以便在边缘有点粗糙:

  • 你会得到奇怪的神秘Scala编译器内部错误
  • IDE支持不如Java好(调试支持也不如Java)
  • 在未来的版本中,向后兼容性将出现中断(尽管这些中断将受到限制)

你还必须承担一些风险,即Scala作为一种语言会失败。

也就是说,我不认为你会回头看!我的经历总体上是积极的。IDE是可用的,你已经习惯了神秘的编译器错误意味着什么,虽然你的Scala代码库很小,但向后兼容性中断并不是一个大麻烦。

对于集合,闭包actor模型,提取器,协变类型等的monad功能来说,这是值得的。这是一种很棒的语言。Option

能够从不同的角度解决问题也对个人有很大的好处,这是上述结构允许和鼓励的。


答案 2

Scala的一些缺点与该语言的相对年轻性完全无关。毕竟,Scala大约有5年的历史,而Java在5年的生命周期中是非常不同的。

特别是,由于Scala没有将其视为战略重点的企业的支持,因此其支持资源相当缺乏。例如:

  • 缺乏广泛的教程
  • 文档质量差
  • 不存在的文档本地化
  • 原生库(Scala使用Java或.NET库作为自己的基础)

另一个重要的区别是由于Sun如何看待Java和EPFL如何看待Scala。Sun将Java视为获得企业客户的产品。EPFL认为Scala是一种旨在成为比现有语言更好的语言的语言,在某些特定方面(主要是OOxFunctional集成和类型系统设计)。

因此,Sun使JVM具有冰川稳定性,而Java完全向后兼容,并且弃用和删除功能的速度非常慢(实际上是删除?),使用一个版本的Scala生成的JAR文件将根本无法与其他版本一起使用(对于第三方库来说是一个严重的问题),并且该语言不断获得新功能以及实际上删除已弃用的功能, Scala的库也是如此。Scala 2.x的修订历史令人印象深刻,我认为它只有3年的历史。

最后,由于上述所有情况,第三方对Scala的支持还处于萌芽阶段。但重要的是要注意,通过销售IntelliJ IDEA IDE赚钱JetBrains已经支持Scala很长一段时间了,并不断改进其支持。对我来说,这意味着对第三方支持的需求,支持肯定会增加。

我指出书中的情况。一年前,市场上还没有Scala的书。现在市场上有两三本介绍性的Scala书籍,大约相同数量的书籍应该在年底前出版,并且有一本关于基于Scala的非常重要的Web框架的书,Lift

我敢打赌,我们很快就会看到一本关于ESME的书,以及关于Scala和并发性的书。出版市场显然已经达到了临界点。一旦发生这种情况,企业就会效仿。


推荐