Lisp.爲什麼使用Lisp

這些新的可能性並不是來自於一個新的神奇元素。在這個方面,Lisp就像是一個架構。到底是哪塊楔形的石頭(拱石)來管控這個架構呢?這個問題本身就是錯誤的;它們都在做。像一個架構,Lisp是一個連鎖特徵的集合。我們可以列出其中的一些特徵——動態存儲分配和垃圾回收,運行時類型,作爲對象的函數,產生列表的內置解析器,接受以列表表達的程序的編譯器,一個交互式的環境,等等——但是Lisp的能力不能從它們中的任何一個看出。它們聯合起來才使得Lisp真正成爲Lisp。


在過去的20年中,人們編程的方式改變了。其中的很多改變——交互式環境,動態鏈接,甚至面向對象編程——曾經一點點地試圖給其它編程語言Lisp的靈活性。這個架構的隱喻表明了它們有多成功。


人們都知道Lisp和Fortran是還在被使用的兩種最古老的編程語言。可能其中更重要的是它們代表了在程序語言設計哲學中的另一個極端。Lisp被設計用來表達算法。諸如這樣的不同目的產生了大量不同的編程語言。Fortran給寫編譯器的人們帶來了很大便利;Lisp給程序員帶來很大便利。大多數的編程語言迷失在這兩者之間。Fortran和Lisp將它們向中心靠攏。Fortran現在看上去更像Algol,Lisp也放棄了早期的一些浪費的習慣。


原先的Fortran和Lisp定義了一種戰爭。戰場的一邊叫喊“效率!”,另外一邊戰場叫喊“抽象!”。類似於古希臘由遠道而來的神來決定戰爭結果,這場戰爭的結果是由硬件來決定的。每年,形勢向着利於Lisp的方向發展。對於Lisp的爭議現在聽上去更象是20世紀70年代彙編語言程序員爭議高級語言的情況。現在的問題變成了,不是爲什麼使用Lisp?,而是什麼時候?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章