我痴迷于那些关于Lisp天才们的神话故事,那些具有超人的本领、用Lisp语言编写程序计算机怪才。我并不是说这种天才只是在神话里才有;有这样的人。我在这里使用“神话”这个词是为了造出一个故事人物形象来刺激你的想象力。我说的是Joseph Campbell提到的这样的神话,而不是指的关于mythbusters这样的东西。
自由软件之父Richard Stallman就是一个Lisp天才的好例子。他是一个很奇怪的人,具有令人惊异的天赋,而且还带有某种悲剧色彩的英雄人物。再加上他的头发和络腮胡子,更符合了奇才的形象。
我们承认Lisp天才非常的少,每个人都能让我们产生相当的敬意,但他们又不至于少到我们不能去收集起来一起讨论。大概1百万程序员里出一个吧。我们从Lisp天才那里能学到什么经验?
可能会有这样一个结论:如果你会用Lisp语言,你就会拥有超人的编程能力。或者,即使Lisp没有让你从普通的水平提升到天才的水平,它仍然会让你具有更高的工作效率。
另外一种可能的结论是,超级程序员都被Lisp吸引住了。这是从The Bipolar Lisp Programmer里总结的。这种情形中,很少的程序员是为了希望获得高效率而转向Lisp语言,更多的出发于一种图腾崇拜思想。
我发现后一种情况更加符合实际,被Lisp吸引的都是一些很杰出的程序员。好像是Lisp能帮助天才的程序员完成更多的成就。Lisp里几乎没有结构体,这对富有创造力的人有吸引力。而大多数典型的程序员都喜欢语言里提供丰富的结构体从而方便使用。
当听到某人说他之所以能够比同事高数倍的效率的原因全在于他使用的是Lisp时,我感到怀疑。如果这个人评估的他和他的同事的效率比较是正确的,这很难把引起这种巨大变化的功劳归于Lisp(或任何其它的语言)。
不同的语言应对不同的任务会产生不同的生产效率。但我相信人的天赋能产生更大的效率差异,尤其是在一些特殊情况下。如果一个人能用别人一半的时间完成任务,也许这可能归功于他使用的语言。如果一个人能用别人1%的时间完成一个任务,这极有可能归功于他的天赋。
天才的程序员使用Lisp语言,也许是Lisp适合他们。但这些家伙使用其它的语言同样能创造出惊人的成就。我想Donald Knuth写TeX用的是Pascal,只保守的使用了Pascal的功能特征。也许他使用一种更强大的语言可以更快速的写出Tex,但也许软件就不会那么快了。
【编辑推荐】