我已经阅读过有关 Clojure 与 Scala 的各种报道,同时我意识到两者都有自己的位置。在比较 Clojure 和 Scala 时,有一些考虑因素我还没有获得完整的解释:
1.) 两种语言中哪一种通常是faster?我意识到这会因一种语言特性而异,但对性能的一般评估会有所帮助。例如:我知道Python字典非常快。但从整体来看,它是一个much比 Java 慢的语言。我不想使用 Clojure 并在以后遇到这个问题。
2.) 与 Java 的互操作性如何?到目前为止,我读到的只是 Scala 具有本机集合类型,这使得与大型 Java 代码库集成有点笨拙,而 Clojure 遵循简单的以 Iterable/Iterator 为中心的方式与 Java 类进行互操作。对此还有更多想法/细节吗?
最终,如果 clojure 和 scala 之间足够接近的话,我可能会尝试两者。 Clojure 的一件事是语言看起来very简单的。但话又说回来,Scala 有一个非常灵活的类型系统。但是,我知道 Scala 很快(基于多个个人帐户)。因此,如果 Clojure 明显变慢:我想早点知道而不是晚点知道。
我认为任何一种语言对你来说都足够快。在比较 Python 和 Java 时,将速度差异归咎于语言似乎有点不合理。 Java 是 JIT 编译的(移动设备* 除外),而 Python 是解释型的。仅仅因为两者都使用字节码并不意味着这些实现将具有远程可比的性能。但 Scala 和 Clojure 都是 JVM 语言,因此它们应该具有相似的性能。
Scala 比 Clojure 有一些实现优势,我希望性能会更高一些。尽管 Scala 的静态类型通常比 Clojure 的鸭子类型具有速度优势,但 Clojuredoes支持类型提示,可以大大加快代码速度。可能普通的 Scala 比普通的 Clojure 更快,但你只需要优化瓶颈即可。程序的大部分运行时间是由少量实际代码生成的。
关于与 Java 的互操作,Scala 更接近 Java,但我确信两种语言都能很好地互操作。在Clojure 编程斯图尔特·哈洛威写道:“[你可以访问]您可以通过 Java 代码实现的任何内容。".
自从 Scala 作者 Martin OderskywroteSun 的 Java 编译器,我认为 Scala 方面也没有失败。 :-)
尽管我也喜欢 Ruby,但你很难选择两种更好的语言。您为什么担心要尝试哪一个?为什么不尝试两者呢? Scala 更有可能成为“下一个 Java”,而很难想象 Lisp 在 50 多年没有这样做之后最终会起飞。但很明显,Lisp 有其独特的抽象级别,而 Clojure 相当简单,因此 Scala + Clojure 不会比(相当复杂的)Scala 难多少,我相信您会很高兴这样做它。
就此而言,它们是互操作的......
* dalvik(android的JVM)在2010年的2.2版本中获得了JIT编译器
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)