【发布时间】:2011-11-28 21:43:41
【问题描述】:
这两种语言都是基于 JVM 的,对函数式编程具有强大的支持。我知道会有一大类问题,两种语言都可以提供出色的解决方案。我想知道的是,如果有任何特定类型的问题,Clojure 的特性会让它在对抗 Scala 和反之亦然。目前,我们在 Scala 中做了很多工作,但我想寻找特定的问题空间,Clojure 可能会提供更好的解决方案。
【问题讨论】:
这两种语言都是基于 JVM 的,对函数式编程具有强大的支持。我知道会有一大类问题,两种语言都可以提供出色的解决方案。我想知道的是,如果有任何特定类型的问题,Clojure 的特性会让它在对抗 Scala 和反之亦然。目前,我们在 Scala 中做了很多工作,但我想寻找特定的问题空间,Clojure 可能会提供更好的解决方案。
【问题讨论】:
这两种语言都非常强大,几乎适用于所有领域。任何一种语言都不会特别出错 - 我什至可以说它们可能是目前最有前途的两种语言。
我仍然认为它们在几个领域各自具有独特的优势:
Clojure 相对于 Scala 的特殊优势:
Scala 相对于 Clojure 的特殊优势:
为了完整起见,两种语言都有一些独特的优势:
【讨论】:
由于 Clojure 的宏系统,我更喜欢使用 Clojure 来编写 DSL。此外,对于某些类型的并发系统,我更喜欢 Clojure。 Clojure 对software transactional memory 的原生支持与Scala 的actor 模型完全不同。
Clojure 对面向对象编程没有很好的支持。对于面向对象范例运行良好的项目,或者您将严重依赖 Java 库/框架的项目,我更喜欢 Scala。
【讨论】:
Clojure 和 Scala 的一大优点是您可以在同一个地方两者同时使用它们,而且摩擦最小。我只建议在 Clojure 中进行大部分互操作,因为我认为它在那里有优势。
两者都试一下,看看哪些问题和语言适合。您始终可以非常轻松地在同一系统中的 Java、Scala 和 Clojure 代码之间进行互操作。
【讨论】: