Clojure有什么用处?

Clojure有什么用处?,clojure,Clojure,人们使用Clojure的目的是什么 我使用Groovy进行粘合,Java用于大型系统,Python/Perl脚本用于解析和粘合。我可以看到我自己从Java调用Clojure,但我看不到我自己在哪里使用它。我觉得在临时任务中使用几乎任何脚本语言都会更容易 我不是Groovy专家,也不是Groovy迷,但让我印象深刻的是,它有更好的支持框架、工具和许多语言构造(闭包、函数式编程)。Scala也是如此 它的未来可能是作为一种嵌入到其他系统中的语言吗?也许可以从Rich Hickey开始 对于现实世界的

人们使用Clojure的目的是什么

我使用Groovy进行粘合,Java用于大型系统,Python/Perl脚本用于解析和粘合。我可以看到我自己从Java调用Clojure,但我看不到我自己在哪里使用它。我觉得在临时任务中使用几乎任何脚本语言都会更容易

我不是Groovy专家,也不是Groovy迷,但让我印象深刻的是,它有更好的支持框架、工具和许多语言构造(闭包、函数式编程)。Scala也是如此


它的未来可能是作为一种嵌入到其他系统中的语言吗?

也许可以从Rich Hickey开始


对于现实世界的应用程序,谷歌集团的这一点如何?

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

Clojure特别适合于并发任务。它是一种非常棒的并发语言,它的STM系统非常棒。如果您需要做一些与并发相关的硬核工作,Clojure可能特别适合该任务

但是,必须记住Clojure是一种通用语言。它不仅适用于某些特定领域,而且对于其他JVM语言可能适用的许多或所有方面都很有用

Clojure本身被设计成一种奇妙的语言,而不一定是一种粘合语言。您可以在Clojure中从头构建系统,而无需直接接触Java代码。并不是说它不是一种很好的粘合语言,我知道很多人都使用过它

如果你有什么想法,最好的办法是考虑选择什么语言的解决方案。如果它在Groovy中看起来/感觉更好,那么就使用Groovy。它们都是完全不同的语言,都有各自的目的。

我使用Clojure的目的是:

  • 抓取网页
  • Shell脚本
  • 建立网站
  • 玩OpenGL
  • 编写异步Web服务器
  • HTML模板
  • 运行并行任务(获取多个URL并并行处理)
  • 播放实时音频
  • 模拟
  • 这才是实用/有趣的东西

    但Clojure也有很多理论深度。随着主流真正理解函数式编程的潜力,这些想法将变得越来越重要

    个人观点,但Culjur-PosiLe提供了更好的语言结构,用于正确地组织软件(对工作程序员来说,不造成任何不必要的痛苦),这是迄今为止我在学术和专业上使用的所有语言——C、C++、Objul-C、java、JavaScript、Python、露比。


    这并不是说Clojure是完美的。但在我看来,它是建立在一个更好的基础之上,而不是大部分的东西。

    < P> Culjule被广泛用于处理大量的数据。它非常适合于数据挖掘/商业人工智能(即Runa)和大规模预测(又名WeatherBill)。Clojure的并发故事在这些数据密集的领域中确实有所帮助,在这些领域中,并行处理只是唯一的答案

    您可以在任何使用Groovy或java的地方使用Clojure。 你为什么要这么做? 有些人喜欢lisp。他们将选择clojure而不是Groovy。
    有些人不喜欢口齿不清。他们会选择Groovy。

    除了给我做三明治以外的所有东西。@wheaties:你试过
    (三明治me BLT)
    ?你为什么不在“大系统”中使用Clojure呢?我认为,由于没有Java那么冗长,您的系统在Clojure中不需要如此庞大。:-)看看答案——我猜人们在用它做一些很酷的东西。我想知道有多少企业会选择它作为长期开发的工具?我知道这已经有很长一段时间了,但是用函数式语言编程需要敏锐的头脑。敏锐的头脑是昂贵的,所以我从商业角度不知道Clojure的有限公司的潜力——直到它变得比今天(五年后)更普遍。你是David Nolen吗?那个在《Clojurescript:Lisp的复仇》上发表演讲的家伙。这真是一场精彩的演讲,“为正确组织软件提供更好的语言结构”是什么意思?例如?@maSnun在现代硬件上的启动时间约为1秒或更短。这对于shell脚本很好。@dnolen感谢您花时间回复。我是一个新的clojure爱好者,当我尝试运行我用lein uberjar创建的jar文件时需要20秒。我使用的是OS X、Macbook,其核心是i5和16GB内存。您是否使用了任何特殊优化?@maSnun uberjars不是用于shell脚本,而是用于应用程序部署。优化应用程序是JVM的一个普遍问题,与Clojure无关。你可以用Clojure编写hash-bang-shell脚本,就像其他任何脚本语言一样简单,这就是我的建议。即使在那时,我发现自己在编写CLI-Clojure脚本,只是因为我觉得这种语言编写起来很愉快,而且不介意我的启动时间。这不仅仅是选择的问题,clojure有很多非其他语言所具备的功能)不知何故,没有人提到任何东西,我几乎记不起会议上的讲话,所以我无法在这里写出正确的答案