Clojure的优势
有人能指出Clojure的优点吗?它适合什么类型的应用程序Clojure的优势,clojure,Clojure,有人能指出Clojure的优点吗?它适合什么类型的应用程序 我不打算将它与任何语言进行比较。作为一种语言,它适合什么?我的目的是了解适合于正确工作的正确工具,以及clojure在这种情况下的适用性。一般来说,我认为clojure的优点(没有特定顺序): 1) REPL将以交互方式进行尝试 2) 默认情况下,所有内容都是不可变的,可变性有几个精心选择的标准模式,可以在多线程环境中以安全的方式修改状态 3) 尾部递归是显式的。在JVM上适当支持尾部递归之前,这可能是最好的折衷方案 4) 非常有表现力
我不打算将它与任何语言进行比较。作为一种语言,它适合什么?我的目的是了解适合于正确工作的正确工具,以及clojure在这种情况下的适用性。一般来说,我认为clojure的优点(没有特定顺序): 1) REPL将以交互方式进行尝试 2) 默认情况下,所有内容都是不可变的,可变性有几个精心选择的标准模式,可以在多线程环境中以安全的方式修改状态 3) 尾部递归是显式的。在JVM上适当支持尾部递归之前,这可能是最好的折衷方案 4) 非常有表现力的语言,支持功能性方法而不是命令式方法 5) 与Java平台的良好集成,使混合使用Java库变得轻松 6) Leiningen与clojars站点一起作为构建和依赖关系管理工具 好的,第6点与语言perse无关,但肯定与我使用它的乐趣有关 关于应用程序,它的目标是多线程应用程序,但现在的情况可能意味着任何事情,因为在任何地方,人们都试图在用户等待时让所有核心保持忙碌。另一方面,显然很多人使用它部署到谷歌应用程序引擎,这是一个单线程的 在我(有限的)实现数据转换和计算的经验中,函数方法非常有效。其中信息和事件可以通过应用程序“流式传输”。Web应用主要属于这一类,我们将请求“转换”为“响应” 但我仍然必须在实际的生产代码中使用它。目前我将其用于个人项目和原型/基准测试工作。优点:
- 函数式编程的所有好处,没有纯粹的束缚
- lispy:允许动态、紧凑的代码和后期绑定、宏、多方法
- Java互操作性
- 可以将函数编码为序列抽象,而不是特定的数据结构
- 并发特性:功能数据结构、软件事务内存
- 在JVM上运行:可移植性和快速垃圾收集
- 自下而上设计
- 嵌入式语言
- 高并发应用程序
- 需要静态键入的情况
- 如果您希望语言能够接受静态分析
- 任何需要快速启动的东西
- 一群不知所措的爪哇猴子