人们使用Clojure的真实应用是什么?
我使用Groovy作为胶水,Java用于大型系统,Python / Perl脚本用于解析和粘合。我可以看到自己从Java调用Clojure,但我无法看到我自己在哪里使用它。令我感到震惊的是,几乎任何脚本语言都可以用于特殊任务。
我不是Groovy专家或任何方式的粉丝,但它让我感到它有一个更好的支持框架,工具和许多语言结构(闭包,函数式编程)。 Scala也是如此。
它的未来是否可以作为嵌入其他系统的语言?
答案 0 :(得分:77)
我用过Clojure:
这是实用/有趣的东西。
但Clojure也有很多理论深度。作为主流将变得越来越相关的想法真正理解了功能编程的潜力。
个人观点,但是Clojure提供了更好的语言结构,用于正确地组织软件(不会给工作程序员带来不必要的痛苦)迄今为止我在学术和专业领域使用的所有语言 - C,C ++,Objective-C ,Java,JavaScript,Python,Ruby。
这并不是说Clojure是完美的。但在我看来,它建立在比大多数内容更好的基础上。
答案 1 :(得分:18)
也许从Rich Hickey的rationale开始。
对于真实世界的应用,谷歌群组的这个roll call of production use怎么样?
答案 2 :(得分:16)
Clojure正被广泛用于处理大量数据。它非常适合数据挖掘/商业AI(即:Runa)和大规模预测(又名WeatherBill)。 Clojure的并发故事确实有助于这些数据繁重的领域,其中并行处理只是唯一的答案。
答案 3 :(得分:12)
嗯,这是一个难以回答的问题。你想让我做什么? Clojure并不是很适合的。我的意思是,由于JVM的启动时间(除非你使用的是cake或类似的东西),对一个命令行脚本来说并不是很好,但对于任何JVM语言都可以这样说。
Clojure特别适合并发任务。它是从头开始构建的,是一种很棒的并发语言,它的STM系统非常棒。如果你需要做一些与核心并发相关的东西,Clojure可能特别适合那个任务。
但是,必须记住,Clojure是一种通用语言。它不仅适用于某些特定领域,而且对于其他JVM语言可能适合的许多或所有事情都有用。
Clojure本身就是一种出色的语言,并不一定是胶水语言。您可以在Clojure中从头开始构建系统,而无需直接访问Java代码。并不是说它不是一个很好的胶水语言,我知道很多人已经使用它了。
如果你有一些想法,最好的办法是考虑解决方案在任何选择的语言中会是什么样子。如果它在Groovy中看起来/感觉更好,请使用Groovy。它们都是截然不同的语言,它们都有其用途。
答案 4 :(得分:7)
您可以在任何使用Groovy或java的地方使用Clojure。 你为什么想这么做 ? 有些人喜欢lisp。那些将选择Groovy的clojure。 有些人不喜欢口齿不清。那些将选择Groovy。