论坛首页 Java企业应用论坛

Clojure 语言简介

浏览 3473 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-05-07  
Tapestry 的作者称之为下一百年的编程语言

  • 其最吸引人的特性是高质量和高效的 STM (内存事务),对并行性的支持非常有独到之处。多线程不需要锁。
  • 其他的重要特性包括与 Java 的高度互操作能力,引入了更简练的 Java 写法。比如有人用其书写的重用 ant 全部 task 的构建系统仅仅 120 行。
  • 它并非面向对象的,但其 multimethod 的多形性实现比对象继承体系更加灵活和容易使用。
  • 它具有基本和 Java 一样的性能。本身的动态类型 (duck type) 可以简化程序员的工作,你也可以通过增加类型信息 (Type hint) 让它完全不使用反射,从而编译成的字节码与 Java 完全等价。
  • 其强大的宏能力,让你可以自己定义语法和自己的领域语言 (DSL)。
  • 使用 Clojure 开发的框架包括 Web 框架 Compojure ,单元测试框架 test-is 等。与 Clojure 语言本身类似,这些框架也是极为简洁(test-is 仅仅 200~ 行代码),但非常容易理解和书写。
  • Clojure 是极简主义的,几乎没有语法。也极其简练,其核心源程序仅仅4K 行。远在其发布 1.0 版本以前,它的质量就已经达到了发布水准,几乎没有 Bug。这也说明了作为语言其固有的质量优势。它可以让程序员不容易犯下错误。
  • Clojure 开发使用 REPL,一个类似于命令行 Shell 的交互工具,写下来的代码可以立即执行。是交互式的开发方式,非常具有乐趣。
  • 已经有了 Eclipse, NetBeans, IDEA 下的开发工具插件,不过目前特性还不是很多,但质量已经可以使用。

至于广受指责的括号海洋,那是因为它用括号代替了全部 Java 的大括号来进行范围划分。如果你有个会自动匹配括号的编辑器或 IDE,就不成任何问题。
   发表时间:2009-05-08  
Clojure 是 Lisp 方言。

the Hundred Year Language 其实是说人工智能之父发明的 Lisp (since 1958) 。

http://www.paulgraham.com/hundred.html
0 请登录后投票
   发表时间:2009-05-09  
在2003年4月的 pyCon 大会上 Paul Graham 的发言试图预言 22世纪初的编程语言的特征。他说:

I believe Lisp Machine Lisp was the first language to embody the principle that declarations (except those of dynamic variables) were merely optimization advice, and would not change the meaning of a correct program. Common Lisp seems to have been the first to state this explicitly.

他认为 Lisp 思想(我理解 Lisp 本身不是一种语言,而是一种元语言,所以有多种方言)是这个方向上重要的一步,Common Lisp 是其重要的一个实现。
而 Clojure 是另一种新的 Lisp 方言,它试图继承 Lisp 的基本哲学和重要优点,但通过建构于 VM、提供并行性特性等方法更能融合新的硬软件的成果,所以它更加接近 Graham 所预言的22世纪语言的特征。

night_stalker 写道
Clojure 是 Lisp 方言。

the Hundred Year Language 其实是说人工智能之父发明的 Lisp (since 1958) 。

http://www.paulgraham.com/hundred.html

0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics