Random Tech Thoughts

The title above is not random

有趣的程序设计语言黑洞理论

最近开始看 Practical Common Lisp,其实自从看了 SICP 以后一直对 Lisp 很感兴趣。(SICP 本身倒是一直没有看完,去年暑假看到第四章就开学了) 从别人哪里看到 James Gosling 是 UNIX 下第一个 Emacs (Gosling Emacs) 的作者,而 Guy Steele 也是 Java 语言标准的指定者之一,Java 跟 Lisp 的渊源开来还真是不浅。在 James Gosling 的 Blog 的这篇文章里他写下了这么一段:

Lisp is a Black Hole: if you try to design something that’s not Lisp, but like Lisp, you’ll find that the gravitational forces on the design will suck it into the Black Hole, and it will become Lisp.

James Gosling 说这是他听是 Guy Steele 说的,Steele 却说他不记得曾经说过,但是这话的调调是像他自己的。

这篇文章还谈到了在 Java 7 中引入 closure,没看 Practical Common Lisp 之前不是很清楚 closure 的真正含义,现在算是明白了。引入 closure 真的是会让 Java 更像 Lisp 了吧,呵呵,不知道 Java 以后会发展成什么样子。(看 closure 的时候觉得编译原理学了以后对语言的了解还是有帮助的,不过感觉学得还不够好)

Practical Common Lisp 里面有这么一句话:现在的语言多数采取 C 的计算模式,但是加入越来越多的 Lisp 中的元素。看过 SICP 以后学 Ruby 的时候就觉得 Ruby 学了 Lisp (Scheme) 里面的一些东西( symbol, closure, 任何函数都有返回值 ),Java 里面引入 closure 的话更是印证了这句话。

Comments