论对东西的崇拜
在之前的几篇博文里面,我多次提到了 Lisp,它相对于其它语言的优势,以及 Lisp Machine 相对于 Unix 的优点。于是有人来信请教我如何学习 Lisp,也有人问我为什么 Lisp Machine 没有“流行”起来。我感觉到了他们言语中对 Lisp 的敬畏和好奇心,但也感觉到了一些隐含的怀疑。
这是一种复杂的感觉,仿佛我在原始人的部落兜售一些原子能小玩具,却被人当成了来自天外的传教士。敬畏和奉承,并不能引起我的好感。怀疑和嘲讽,也不能引起我的不平。当我看到有人说“别听他误导群众,学那些语言是找不到工作的”的时候,我心里完全没有愤怒,也没有鄙视,我也没必要说服他。我只是微笑着摇摇头,对自己说:可怜而可笑的人。
不明白为什么,当我提到某个东西相对于另一个东西的优点的时候,我总是被人认为是在“推崇”某个东西,或者被人称为是它的“狂热分子”。现在显然已经有人认为我在推崇 Lisp 了,甚至在某个地方看到有人称我为“国内三大 Lisp 狂人之一”。他们仿佛觉得我推荐一个东西,就是想让他们完全的拥抱这个东西,而丢弃自己已经有的东西。而“支持”这另一个东西的人,也往往会产生敌视情绪。
很多人都不明白,每个东西都有它好的方面,也有它不好的方面。我推荐的只是 Lisp 好的方面,不好的方面我心里清楚,但是还没有机会讲。这些人显然已经在下意识里把“东西”当成了人。有人说“爱一个人就要爱她(他)的全部”,这是一种很无奈的说法,因为你没有能力把一个人分解成你喜欢的和不喜欢的两部分,然后重新组装成你的梦中情人。可是东西却不一样。因为东西是人造出来的,所以你可以把它们大卸八块,然后挑出你喜欢的部分。
所以我可以很清楚的告诉你,我并不推崇 Lisp,我也不是 Lisp 狂人,它只是我的小玩意儿之一。这个非常精巧的小玩意儿,包含了很多其它东西身上没有的优点。人们都说忘记历史就等于毁灭未来。如果 Java 没有从 Lisp 身上学会“垃圾回收”,C# 没有从 Lisp 身上学会 lambda,那么我们今天也许还在为 segfault 而烦恼,也许会继续使用没必要的 design patterns。如果你了解一点历史就会发现,今天非常流行的 JavaScript,其实不过是一个“没能正确实现的 Scheme”。所以 Lisp 的精髓,其实正在越来越多的渗透到常用的语言里面。
很多人没有设计程序语言的能力,所以他们把程序语言,操作系统一类的东西当成是不可改变的,凌驾于自己之上的。相比之下,我受到的训练却给了我设计和实现几乎任何语言的能力。我知道它们的优点和弱点,我有能力把它们大卸八十块,再组装还原。我有能力改变其中我不喜欢的地方,或者增加我觉得有必要的功能。当我谈论某个东西比另一个好的地方,总有人以为我在“抱怨”,说:“既然如此,那为什么你说的这个好东西被打败了?”他不明白,其实我只是在“分析”。我希望从各个东西里面提取出好的部分,然后想办法把它们都注入到一个新的东西里面。我也希望吸取前人教训,免得重犯这些东西里面的设计错误。
所以,我其实并不是那么热心的希望有更多的人用 Lisp,Haskell 或者其它什么语言。我不会,也没那工夫去分享自己的秘诀。我没有责任,也没有能力去拯救世界。这是一种找到巨大宝藏的感觉,我蹲在一堆堆的财宝上休养生息。我知道世界上即使没有了我,太阳明天照样会升起。我为什么要那么热心的让别人也知道如何进入这个宝藏?我不是一个特别自私的人,但我也不需要推销什么。这就像我介绍了我的“减肥成功经验”,你觉得太辛苦,偏要去买那些吹得神乎其神的减肥药。我有什么动机来说服你呢?又不是我身上的肥肉。
推崇一个东西,为一个东西狂热,这些感情都在我身上存在过。也许它们确实给我带来了一些益处,让我很快的学会了一些东西。但是这些感情的存在,其实也显示了一个人的弱小。当一个人没有办法控制一个东西的时候,他就会对它产生“崇拜”的心理,这就像所有的宗教和迷信一样。当人们处于自然灾害的凌威之下,没有能力掌握自己命运的时候,他们就对神和超自然的力量产生了崇拜。这是一种心灵的慰藉,至少有上帝或者观音菩萨,可以聆听他们的心声,可以给予他们度过灾难的勇气,但它同时也显示出人的无助和自卑。这种无助和自卑,也引发了偏激的宗教心理,因为他们害怕自己的“保护神”被别人的“保护神”所压倒,以至于让自己受制于他人。这是一种愚昧和卑劣的感情。
可是当你拥有了强大的力量,可以不再畏惧的时候,这种崇拜,以及由于崇拜所带来的偏激心理,就渐渐的消亡了。这就像是一个身怀绝世武功的人,他完全没必要让别人都相信他是高手。因为他知道,自己在谈笑之间,就可以让樯橹灰飞烟灭。于是,他自得其乐,对别人表现出的任何感情,都变得淡漠和无动于衷。