我最近买了Programming Scala,并且一直在阅读它。语言绝对不是我所期望的!具体来说,它似乎实现了我所知道的几乎所有编程语言的想法,在 Lisp 宏和 Haskell 的类型级副作用隔离之外。
坦率地说,这让我有些不知所措。虽然我认为有这么多工具可供我使用是件好事,但我真的只是在 JVM 上寻找一种强类型的函数式语言。我想我可能会以这种方式使用 Scala,但我想如果我与任何库交互或浏览其他任何人的代码,我会遇到很多这种高级(对我而言)OOP 东西——特征和“对象层次结构”线性化”,所有这些抽象和压倒一切的业务、单例、包和伴随对象、隐式转换……更不用说各种语法快捷方式和糖了。
人们常常哀叹程序员试图将一种语言的风格硬塞到另一种语言中,这有很多很好的理由。但并非所有语言都像 Scala 那样具有多范式,所以也许它的社区有不同的看法?例如,在 F# 中,似乎在编程风格和使用多少 OOP 方面存在一些余地。但是仅仅从阅读中我不确定这对 Scala 是否也是一个好的哲学。
更有经验的 Scala 程序员可以在这里帮助我吗?为清楚起见进行编辑:基本上,我可以安全地仅(或大部分)使用 Scala 的 FP 功能,而不必担心其高级 OOP 方面吗?
对不起,漫无边际的问题!