使用Clojure进行新开发的最佳用例是什么?
为什么我要选择Clojure而不是另一种语言来进行新项目?它在哪些方面表现出色?冒着提供Devin所指的那种还原性非答案的风险:我选择Clojure是因为我喜欢函数式编程风格,Clojure允许我在JVM上这样做,并与JVM上运行的大量现有代码进行互操作 于是问题就变成了:为什么要进行函数式编程 不变状态-没有副作用,更容易测试,更好地支持并发性(以及将来的并行性)使用Clojure进行新开发的最佳用例是什么?,clojure,Clojure,为什么我要选择Clojure而不是另一种语言来进行新项目?它在哪些方面表现出色?冒着提供Devin所指的那种还原性非答案的风险:我选择Clojure是因为我喜欢函数式编程风格,Clojure允许我在JVM上这样做,并与JVM上运行的大量现有代码进行互操作 于是问题就变成了:为什么要进行函数式编程 不变状态-没有副作用,更容易测试,更好地支持并发性(以及将来的并行性) 小型、功能性组件,易于重用和组合,以构建大型、灵活的系统。很难找到clojure开发人员,因此如果你在一家大公司工作,坚持使用ja
小型、功能性组件,易于重用和组合,以构建大型、灵活的系统。很难找到clojure开发人员,因此如果你在一家大公司工作,坚持使用java或.net,我会远离它。对于大公司来说,这更像是一个政治决策,而不是技术决策。但是,如果您正在构建自己的产品,那么clojure的开发速度非常快,可以让您更快地进入市场。我将使用clojure的一些场景:
- 您正在构建一个新的、高度并发的、需要可靠扩展的应用程序。在我看来,Clojure的并发特性(STM、默认不可变、无锁MVCC)是目前所有主流语言中最好的。关于身份和国家是一个很好的方式来获得这种感觉
- 您是一家基于Java的商店,需要一种高效的动态语言,该语言可用于快速开发或脚本编写,同时保持您对大型Java代码库的投资。我发现Clojure在“粘合”Java代码方面非常有效,因为互操作功能非常好(而且非常简单!)
- 如果你想使用一种函数式编程语言Clojure非常好(它不像Haskell那样“纯粹”,但具有所有关键特性——一流函数、高阶函数组合、不变性、惰性)
- 如果您工作的领域主要需要代码操作(编译器、DSL、自然语言处理、遗传编程),那么LISP“代码就是数据”理念可以让您的工作效率极高。这通常是基于LISP语言的最佳选择