使用Clojure进行新开发的最佳用例是什么?

时间:2011-01-07 04:07:14

标签: clojure

为什么我要为新项目选择Clojure而不是其他语言?它在哪些方面表现优异?

3 个答案:

答案 0 :(得分:6)

我会使用Clojure的一些场景:

  • 您正在构建一个需要可靠扩展的新的高度并发应用程序。在我看来,Clojure的并发特性(STM,默认不变性,无锁MVCC)是目前任何主要语言中最好的。关于身份和国家的Rick Hickey's excellent video是了解这种情况的好方法。

  • 您是一家基于Java的商店,需要高效的动态语言,可用于快速开发或编写脚本,同时保持对大型Java代码库的投资。我发现Clojure在“粘合”Java代码方面非常有效,因为互操作能力非常好(而且很简单!)。

  • 如果你想使用函数式编程语言 Clojure非常好(它不像Haskell那样“纯粹”但具有所有关键特性 - 一流函数,高阶函数组成,不变性,懒惰)

  • 如果你在一个主要需要代码操作的领域工作(编译器,DSL,自然语言处理,遗传编程),那么 LISP“代码就是数据”哲学使您的工作效率极高。这是基于homoiconic LISP的语言的最佳选择。

答案 1 :(得分:2)

冒着提供Devin所指的那种还原性非答案的风险:我选择了Clojure,因为我喜欢函数式编程风格,而Clojure让我在JVM上执行此操作,并与运行的大量现有代码互操作在JVM上。

那么问题就变成了:为什么要进行函数式编程?

不可变状态 - 缺乏副作用,更容易测试,更好地支持并发(以及将来的并行性)。

小型,功能性组件,可以轻松地重复使用和组合,以构建大型,灵活的系统。

答案 2 :(得分:1)

很难找到clojure开发者,所以如果你为一家大公司工作并坚持使用java或.net,我会远离它。在大公司中,这更像是政治决定而非技术决策。但是,如果您正在构建自己的产品,那么clojure的开发速度非常快,可以让您更快地进入市场。