難怪lisp不流行
lisper社群有很多問題。comp.lang.lisp是我見過的最病態的新聞組之一。下面我將談到其中的兩個很嚴重的問題。
每隔兩三年,comp.lang.lisp就會展開一場關於為什麼人們不愛用lisp的大討論。一次,peter da silva建議道,「應該開發乙個像awk那樣的lisp指令碼工具,這樣人們就可以輕鬆地完成排序這樣的事,進而用lisp做一些日常工作,而後開始做大工程」。他舉了個例:
awk 'begin ; $6=="/sbin/nologin" ' /etc/passwd
跟帖很有趣。首先,乙個人說到,「你早就可以這樣做了」:
「我早就用lisp(好吧,是scheme)來處理一些日常事務了。只需要幾個巨集和函式,我就能用common lisp實現你的指令碼:」
(with-lines-from-file (line "/etc/passwd")
(let ((fields (string-split line :fs #\:)))
(when (string= (aref fields 5) "/sbin/nologin")
(format t "~a~%" (aref fields 0))))))
這個方案差不多比awk版長一倍半,但至少它「只需要幾個巨集和函式」-_-! 嚯嚯~,這傢伙根本就沒把住問題的本質。
所以,(lisp社群的)第乙個問題是他們根本就不知道其他人想要什麼。
討論還在繼續,接下來是乙個更嚴重的問題:
「有多少時候你會寫這種「一句**」?事實上並不多。這不過是perl的一種壓縮**的奇技淫巧。六個星期,乃至六個月後,我更願意讀lisp**,而不是那些perl謎語。」
有多少時候我會寫這種「一句**」?我不知道,也許一天二三十次。但我打賭肯定不精彩,因為我們都知道,awk已經徹底失敗了,因為它不能滿足實際需求。所以,(lisp社群的)第二個問題是他們不願說lisp不行,即時用lisp來解決某個問題真的不高效。這時他們的回答要麼是「實際中不會出現這樣的問題」,要麼是「白痴才會去解決這種問題」。
值得注意的是,爭論轉向了抨擊perl。關perl哪門子事啊?da silva討論的是awk,不是perl。但是comp.lang.lisp上的人就是不放過perl。他們就是喜歡討論perl。我們再看看comp.lang.python上的情況,那的人很少會討論perl。所以,我認為相比起comp.lang.lisp,comp.lang.python上的討論更健康——lisper在意perl,而python則更在意python。
這就知道lisp為什麼不流行了。lisp程式設計師根本就不想讓它流行。他們總是抱怨沒人用lisp,卻又總在侮辱論壇上的新手(這幫老傢伙認為這是新手應得的,誰讓他們又笨又愛嘰嘰喳喳)。如果lisp真的流行起來,那絕對是comp.lang.lisp上這幫人的噩夢。
lisp在很多方面都很優秀,但lisp社群的問題很嚴重。我倒是想改善這種情況,但恐怕我幫不了什麼,因為他們根本就不聽勸,至少聽不進我的。
lisp實戰文庫 LISP經典程式
一 繪製地形圖符號 1.點狀符號 對於點狀符號 其位置固定 數量較多 且一般都帶有一定的標註 可逐個製作屬性塊圖元 單獨插入。2.線狀符號 利用autocad 中強大的線型定義。3.面狀符號 由充填符號在面域內按一定的排列方式組合而成。目前auto cad 在建築設計 工程施工放樣得到廣泛應用 au...
lisp捕捉垂足 lisp函式詳解
auotlisp及vlisp函式全集 按字母順序排列按功能分類排列 212.ssget 一.功能 提示使用者選擇物件 圖元 並返回乙個選擇集。二.格式 ssget mode pt1 pt2 pt list filter list 三.說明 一 函式呼叫中各變元的說明 mode變元是指定物件 圖元 選...
lisp程式繪製大樹 LISP 樹
可以從cons單元構建樹的資料結構,如清單列表。為了實現樹形結構,則必須設計功能,將遍歷cons 單元,在特定的順序,例如,前序,順序和後序的二進位制樹。樹列表的列表 讓我們考慮由cons單元的樹狀結構,形成列出的清單如下 1 2 3 4 5 6 它可以表示為 lisp樹的功能 雖然多數時候仍需要根...