首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Clojure的优势

Clojure的优势
EN

Stack Overflow用户
提问于 2010-06-15 15:45:12
回答 2查看 7.6K关注 0票数 18

有人能指出Clojure的优点以及它适合哪种类型的应用程序吗?

我不打算把它与任何语言相比较。作为一种语言本身,它适合做什么?我的意图是知道合适的工作工具,并在这种情况下在什么情况下适合关闭。

EN

回答 2

Stack Overflow用户

发布于 2010-06-15 17:12:56

优势:

函数编程的所有优点,没有纯straitjacket

  • lispy:,允许动态的、紧凑的代码与后期绑定、宏、multimethods

  • Java interoperability

  • can代码函数进行顺序抽象,而不是特定的数据structures

  • concurrency的好东西:功能数据结构、软件事务内存

  • 在JVM上运行:可移植性和快速垃圾收集

适合:

自下而上的design

  • embedded languages

  • highly-concurrent applications

可能不适合:

如果您希望静态语言能够适应需要快速启动时间的analysis

  • anything (需要快速启动时间

  • 成群结队的无头绪的Java猴子

)的静态

  • ,则需要静态输入

票数 21
EN

Stack Overflow用户

发布于 2010-06-15 16:13:51

总的来说,我发现clojure的优点(没有特别的顺序):

( 1) REPL以互动的方式进行尝试。

2)在默认情况下,所有东西都是不可变的,并且在多线程环境中,可更改性有几种精心选择的标准模式,可以安全地修改状态。

3)明确了尾递归。在JVM上正确支持尾递归之前,这可能是最好的折衷方法。

4)非常有表现力的语言,它倾向于功能方法,而不是祈使式方法。

5)与Java平台非常好的集成,使得在Java库中混和是无痛的

6) Leiningen与clojars站点一起作为构建和依赖管理工具

好的,第6点与语言perse无关,但绝对与我使用它的乐趣有关。

关于应用程序,它的目标是多线程应用程序,但是现在的情况可能意味着任何事情,因为在用户是而不是等待的时候,到处都有人试图让所有的内核都忙着。另一方面,很明显,很多人使用它来部署到Google,这是从根本上说是单线程的。

在我(有限的)经验中,功能方法在实现数据转换和计算方面非常有效。其中的信息和事件可以通过应用程序“流”。Web应用在很大程度上属于这个类别,我们将请求“转换”为“响应”。

但我仍然需要在实际的生产代码中使用它。目前,我将其用于个人项目和原型/基准测试。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3046769

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档