什么是Clojure有用的?

Clojure使用哪些真实世界的应用程序?

我使用Groovy进行粘合,大型系统使用Java,parsing和粘贴使用Python / Perl脚本。 我可以看到自己从Java调用Clojure,但是我看不到自己在哪里使用它。 这让我觉得,几乎所有的脚本语言都可以用于特殊任务。

我不是Groovy的专家,也不是任何一个fanboy,但是它让我觉得它有一个更好的支持框架,工具和大量的语言结构(闭包,函数式编程)。 斯卡拉也是如此。

难道它的未来就像embedded其他系统的语言一样吗?

我已经使用Clojure:

  1. 刮网页
  2. Shell脚本
  3. build立网站
  4. 玩OpenGL的
  5. 编写asynchronous的Web服务器
  6. HTML模板
  7. 运行并行任务(并行获取多个URL和进程)
  8. 玩实时audio
  9. 模拟

这是实用/有趣的东西。

但是Clojure也有很多理论深度。 作为主stream的思想将变得越来越相关,以真正理解函数式编程的潜力。

一个个人的观点,但是Clojure flat提供了更好的语言结构,用于在学术和专业方面到目前为止使用的所有语言(C,C ++,Objective-C,Java等)正确组织软件(不会给工作程序员造成过度的痛苦) JavaScript,Python,Ruby。

这并不是说Clojure是完美的。 但是,在我看来,它build立在比大多数内容更好的基础上。

也许从Rich Hickey的基本原理开始 。

至于真实世界的应用程序,这个谷歌组合的产品使用的这个报价怎么样?

Clojure被广泛用于处理大量的数据。 它非常适合于数据挖掘/商业AI(即:Runa)和大规模预测(又名WeatherBill)。 Clojure的并发性的故事确实有助于这些数据繁重的领域,其中并行处理只是唯一的答案。

那么,这是一个难以回答的问题。 您想做什么? Clojure并不是很适合。 我的意思是,由于JVM启动时间(除非使用蛋糕或类似的东西),对于一个命令行脚本来说并不是那么好,但是对于任何JVM语言来说都是如此。

Clojure特别适合于并发任务。 它是从头开始build立一个真棒语言并行,而STM的系统是太棒了。 如果你需要做一些硬核并发相关的东西,Clojure可能特别适合这个任务。

但是,我们必须记住,Clojure是一种通用语言。 它不仅适用于某些特定的领域,而且对于其他JVM语言可能适合的许多或全部事物而言,它往往是有用的。

Clojure的devise本身就是一种非常棒的语言,并不一定是一种胶水语言。 您可以从Clojure开始构build系统,而无需直接触摸Java代码。 不是说它不是一个很好的胶水语言,我知道很多人使用它。

如果你有任何想法,最好的办法就是考虑一下解决scheme在任何语言选项中的样子。 如果在Groovy中看起来/感觉更好,请使用Groovy。 他们都是截然不同的语言,他们都有自己的目的。

你可以在任何你使用Groovy或java的地方使用Clojure。 你为什么想这么做 ? 有些人喜欢lisp。 那些将selectGroovy clojure。 有些人不喜欢lisp。 那些将selectGroovy。