这次出差是拿了好几本书,但翻开的只有两本,一本就是上次说的<黑客与画家>,而另一本是另一位是大名鼎鼎的黑客的<松本行弘的程序世界>.
其实第 2 本是先看的,松本行弘在里面轻微的吐槽了 LISP,可能由于是日本人吧,好像说的话并不重,之所以要说一下,主要还是解释自己的 Ruby 为何如此设计.
> 虽然 Ruby 非常重视扩展性,但是有一个特性,尽管明知道它能带来巨大的扩展性,我却一直将其拒之门外。那就是宏,特别是 Lisp 风格的宏。
> ...
> 那么,我为什么拒绝在 Ruby 中引入 Lisp 那样的宏呢?这是因为,如果在编程语言中引入宏的话,活用宏的程序就会像是用完全不同的专用编程语言写出来的一样。比如说 Lisp 就经常有这样的现象,活用宏编写的程序 A 和程序 B,只有很少一部分是共通的,从语法到词汇都各不相同,完全像是用不同的编程语言写的。
>
> 对程序员来说,程序的开发效率固然很重要,但是写出的程序是否具有很高的可读性也非常重要。从整体来看,程序员读程序的时间可能比写程序的时间还长。读程序包括为理解程序的功能去读,或者是为维护程序去读,或者是为调试程序去读。
顺便说一句,在<黑客与画家>中 Paul Graham 也夸过 Ruby,认为 Ruby 可以看做 LISP 的方言.
> 当你按照 Java 、Perl,Python,Ruby 这样的顺序观察这些语言,你会发现一个有趣的结果。至少,如果你是一个 Lisp 黑客,你就看得出来,排在越后面的语言越像 Lisp 。Python 语言模仿 Lisp,甚至把许多 Lisp 黑客认为属于设计错误的功能也一起模仿了。至于 Ruby 语言,如果回到 1975 年,你声称它是一种有着自己句法的 Lisp 方言,没有人会提出反对意见。编程语言现在的发展不过刚刚赶上 1958 年 Lisp 语言的水平。
然后又在网上看到了另一篇吐槽,感觉就比较全面,而且言辞激烈了,这里也放上去.
Lisp 魔咒:对 Lisp 的非技术性吐槽 - 编程语言 - ITeye 资讯
https://www.iteye.com/news/30710软件工程没有银弹,Paul Graham 尬吹 LISP 是个错误,不过考虑到这是短文合集,可以接受.