zoukankan      html  css  js  c++  java
  • Clojure介绍

    Clojure(发音类似 "closure") 是一套现代的 Lisp 语言的动态语言版。Clojure 可以执行于Java虚拟机器之上。

    一方面客户以及董事们对于工业级别的标准平台如JVM投入了大量的资金,并且对于它的性能,安全性,稳定性都很满意。另一方面java工程师也很羡慕动态语言的简洁,灵活以及开发效率,他们也希望这些动态语言能运行在客户/董事们所期望的平台上,可以访问那些已经很成熟的java类库,并且性能还应该不错;他们要用原始的线程、锁来编写多线程程序。clojure就是一个为了满足这些需求的一个尝试: 一个运行在JVM上的动态语言。它可以被使用在java适合的那些场合,它描绘了一个并发编程的前景: 那种到处都是的,没有经过协调的,对资源的并发修改已经过时了。

    为了实现clojure的目标:它使用工业级别、开放的平台: JVM;现代化一个传奇性的语言: LISP;使用不可更改的(immutable)的数据结构来进行函数式编程;通过software transactional memory以及asynchronous agents来内在地支持并发编程。其结果就是一个健壮的、实用的、快速的语言clojure的诞生。

    简单来说,clojure是JVM上面具有多线程支持的Lisp。

    Clojure是一门现代化的LISP完整的宏系统,一门函数式编程语言,它还具有并发语义,基于JVM访问这些库等等。Clojure是JVM上的一门新的语言,类似Groovy,Jyphon和JRuby,它能动态的、简洁的、无缝的与Java进行交互操作。

    总结来说,Clojure具有:

    1.函数式变成语言,可以与Java无缝结合,可以方便调用Java的巨大库函数。

    2.动态语言的简洁,灵活和开发效率。(某个版本strom Java代码25000多行,而Clojure(Lisp)只有4871行,Java用来搭建框架,Clojure用来实现核心代码)

    3.不可更改的数据结构,内在支持并发编程。(没有太懂)

    是否clojure + java 就类似与 lua + c++?

  • 相关阅读:
    node.js 入门笔记3
    Linux常用命令大全(非常全!!!)
    数据库导入导出命令(结构+数据)?
    列举 创建索引但是无法命中索引的8种情况。
    简述触发器、函数、视图、存储过程?
    什么是事务?MySQL如何支持事务?
    简述数据库三大范式
    MySQL常见数据库引擎及比较?
    列举常见的关系型数据库和非关系型都有那些?
    操作系统常见面试题
  • 原文地址:https://www.cnblogs.com/zhangzhang/p/2863482.html
Copyright © 2011-2022 走看看