有人可以指出Clojure的优势以及它适合哪种类型的应用程序?
我不打算将它与任何语言进行比较。作为一种语言本身适合什么?我的目的是为正确的工作知道正确的工具,以及在这种情况下clojure适合的地方。
答案 0 :(得分:17)
优点:
适合:
可能不适合:
答案 1 :(得分:10)
一般来说,我发现clojure的强点(没有特别的顺序):
1)REPL以交互方式尝试。
2)默认情况下,一切都是不可变的,并且可变性有几个精心选择的标准模式,可以在多线程环境中以安全的方式修改状态
3)尾部递归是明确的。直到JVM上有对尾递归的适当支持,这可能是最好的折衷方案
4)非常富有表现力的语言,有利于功能性方法而不是命令式方法。
5)与Java平台的良好集成使得在Java库中混合使用变得轻而易举
6)Leiningen作为构建和依赖管理工具与clojars网站一起
好的,第6点与语言perse无关,但绝对是我喜欢使用它。
关于应用程序,它针对多线程应用程序,但现在的方式可能意味着任何事情,因为当用户不等待时,所有人都试图保持所有这些核心忙碌。另一方面,显然很多人使用它来部署到基本上是单线程的Google App Engine。
功能方法在我(有限的)实现数据转换和计算的经验中运行良好。可以通过应用程序“流式传输”信息和事件的位置。 Web应用程序主要属于这一类别,我们将请求“转换”为“响应”。
但我仍然必须在真实的生产代码中使用它。目前我将它用于个人项目和原型设计/基准测试。