Lisp天才神話

發表於2011-06-12

我痴迷於那些關於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,但也許軟體就不會那麼快了。

原文:John D. Cook  譯文:外刊IT評論

 

相關文章