代码之家  ›  专栏  ›  技术社区  ›  Rishav Rastogi

Clojure的优势[关闭]

  •  16
  • Rishav Rastogi  · 技术社区  · 14 年前

    有人能指出Clojure的优点吗?它适合什么类型的应用程序?

    我不想把它和任何语言作比较。作为一种语言,它适合什么?我的目的是了解正确的工作所需的正确工具,以及clojure在这种情况下的适用性。

    2 回复  |  直到 14 年前
        1
  •  18
  •   Nathan Hughes    10 年前

    • lispy:允许动态的,紧凑的代码,后期绑定,宏,多方法
    • Java互操作性
    • 并发好处:功能性数据结构,软件事务性内存
    • 在JVM上运行:可移植性和快速垃圾收集

    适用于:

    • 嵌入式语言
    • 高并发应用程序

    可能不适合:

    • 需要静态键入的情况
    • 任何需要快速启动时间的东西
    • 一群无厘头爪哇猴子
        2
  •  10
  •   Peter Tillemans    14 年前

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

    1) REPL以交互方式进行尝试。

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

    3) 尾部递归是显式的。在JVM上对尾部递归提供适当的支持之前,这可能是最好的折衷方案

    4) 非常有表现力的语言,比命令式方法更倾向于函数式方法。

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

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

    关于应用程序,它的目标是多线程应用程序,但是现在的情况可能意味着任何事情,因为任何地方的人都试图让所有这些核心在用户忙的时候保持忙碌 等待。另一方面,显然有很多人使用它来部署到googleappengine上,而googleappengine根本就是单线程的。

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

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