这两种语言都是基于JVM的,对功能编程有很强的支持。我知道会出现一大类问题,两种语言都能提供出色的解决方案。我想知道的是,如果有任何特殊类型的问题,Clojure的功能会给它一个显着的优势来反对Scala和反之亦然。目前我们在Scala中做了很多工作,但我想留意Clojure可能提供更好解决方案的特定问题空间。
答案 0 :(得分:38)
这两种语言都非常强大,适用于几乎所有领域。你不能用这两种语言特别出错 - 我甚至可以说它们可能是目前最有前途的两种语言。
我仍然认为有几个方面他们各自都有独特的优势:
Clojure相对于Scala的特殊优势:
斯卡拉相对于Clojure的特殊优势:
为了完整起见,两种语言都有一些独特的优势:
答案 1 :(得分:11)
由于Clojure的宏系统,我更喜欢使用Clojure来编写DSL。此外,我更喜欢Clojure用于某些类型的并发系统。 Clojure对software transactional memory的原生支持与Scala的演员模型完全不同。
Clojure对面向对象编程没有很大的支持。对于面向对象范例运行良好的项目,或者您将严重依赖Java库/框架,我更喜欢Scala。
答案 2 :(得分:4)
关于Clojure和Scala的一个好处是你可以在同一个地方使用两个,而且摩擦力最小。我只建议在Clojure中进行大部分互操作,因为我觉得它有优势。
试试两者,看看哪些问题和语言融合在一起。您可以非常轻松地在同一系统中的Java,Scala和Clojure代码之间进行互操作。