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