什么是Clojure有用?

时间:2010-11-23 20:24:10

标签: clojure

人们使用Clojure的真实应用是什么?

我使用Groovy作为胶水,Java用于大型系统,Python / Perl脚本用于解析和粘合。我可以看到自己从Java调用Clojure,但我无法看到我自己在哪里使用它。令我感到震惊的是,几乎任何脚本语言都可以用于特殊任务。

我不是Groovy专家或任何方式的粉丝,但它让我感到它有一个更好的支持框架,工具和许多语言结构(闭包,函数式编程)。 Scala也是如此。

它的未来是否可以作为嵌入其他系统的语言?

5 个答案:

答案 0 :(得分:77)

我用过Clojure:

  1. 刮网页
  2. Shell脚本
  3. 建立网站
  4. 玩OpenGL
  5. 编写异步网络服务器
  6. HTML模板
  7. 运行并行任务(获取多个URL并并行处理)
  8. 玩实时音频
  9. 模拟
  10. 这是实用/有趣的东西。

    但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。