現場coding就要這個範兒——記Lisp愛好者技術沙龍

袁野發表於2013-03-22

《黑客與畫家》這本書中,保羅 · 格雷厄姆給大家描述了一種黑客心目中夢寐以求的語言。

enter image description here

讓我們試著描述黑客心目中夢寐以求的語言。這種語言乾淨簡練,具有最高層次的抽象和互動性,而且很容易裝備,可以只用很少的程式碼就解決常見的問題。不管是什麼程式,你真正要寫的程式碼幾乎都與你自己的特定設定有關,其他具有普遍性的問題都有現成的函式庫可以呼叫。

  • 句法短到令人生疑。
  • 這種語言的抽象程度很高
  • 語言的核心很小,但很強大。
  • 以層的方式構建。
  • 所有細節對使用者都是透明的。

這種語言提供的抽象能力只是為了方便你的開發,而不是為了強迫你按照它的方式行事。事實上,它鼓勵你參與它的設計,給你提供與語言創造者平等的權力。你能夠對它的任何部分加以改變,甚至包括它的語法。它儘可能讓你自己定義的部分與它本身定義的部分處於同等地位。這種夢幻般的程式語言不僅開放原始碼,更開放自身的設計。

在這本書中保羅 · 格雷厄姆非常推崇Lisp這門語言。3月16日,中國lisp技術愛好者齊聚圖靈,進行了一場充滿歡樂氛圍的交流活動。 enter image description here

本次lisp技術沙龍報名比較踴躍,報名了100多人參加會議。圖靈這邊也提前做了準備,最大限度的騰出空間佈置場地,還臨時徵用了編輯們的椅子。結果準備還是不足,雖然提前公佈了場地人員限制,但還是難擋大家的參加活動的熱情,現場人員爆棚,晚來的人員只能站在聽講,小編在這裡也先抱歉則個。

enter image description here

相機的視線後方還有許多站著聽講的人,Lisp語言的號召力還是很強的。在開場自我介紹的環節有幾位參會者提到,就是看了《黑客與畫家》這本書才投入到了Lisp的懷抱之中。看來保羅 · 格雷厄姆對於Lisp這門語言的推廣功不可沒。

好書總是值得人們一讀再讀,當你放下它的時候,它總是在那裡默默的等待著你的下一次翻閱。讀過《黑客與畫家》這本書的人都會有這樣的體會,每次閱讀都會有一些新的心得體會。

enter image description here

活動的第一位演講者帝歸(花名),他給大家分享了 《小議Clojure與其它Lisp的異同》。帝歸也是一位Lisp語言的實踐者,在進入大學後開始程式設計,陰差陽錯的進入了Lisp的世界。他從Lisp語系的歷史、語法及程式設計正規化、工具鏈、執行時等幾個方面和大家進行了探討。

現場提問環節有人問到 ,現在哪一種語言更有發展?有人說是Clojure,也有人並不認同,也有人說這個問題就是像《黑客與畫家》中所講的“一百年後的語言”一樣。

enter image description here enter image description here

第二位演講者沈鋒給大家帶來了《Clojure Web簡介——少了框架,日子更美好》。他在現場直接程式設計講解。他也說道自己是一個實踐者,喜歡code。寫過Java、搞過Python,最後鍾情Clojure,投入Lisp的懷抱。沈鋒的幽默風趣也引來了大家的陣陣笑聲。

enter image description here

來自ThoughtWorks 的第三位演講者韓鍇與大家分享了《Prolog與Erlang起源》。講者並不使用Prolog與Erlang,只是對於新語言的熱情,讓講者對於Prolog與Erlang投入了大量的關注。

enter image description here

第四位演講者賴林華與大家分享了《Haskell 與 Yesod,利用 DSL 加速 Web 開發》。在提問環節聽眾問了一個問題“什麼叫純粹的語言?”,講者給出的答案是“純粹就是一個函式的輸入沒有副作用”。聽眾追問“你說所有的語言都是純粹的那麼所有語言都沒有副作用,那什麼是副作用”,講者的回答是“你在寫程式碼的時候是沒有副作用的,執行起來的時候才會產生副作用”。

enter image description here

第五位演講者包昊軍帶來了《我想讀原始碼》的10分鐘簡短演講。他也是現場程式設計與大家進行探討交流。

enter image description here

最後一位演講者,溫瑞雲與大家分享了《Clojure的力量之源》,也是一段10分鐘的簡短演講。講者結合自己的實踐,介紹了Clojure與C++對比的感受。

enter image description here

最後在整個活動結束後,一定要來一張合影。很多人都堅持到了活動的結束。

後記(轉自維基Lisp中文社群

Lisp的歷史

Lisp的歷史十分悠久,僅次於Fortran,是第二古老的語言。 而對於Fortran,語言學家給予的負面評價遠比正面評價多,甚至在很多場合被作為程式設計語言的反面教材; 但是Lisp則剛好相反,它一直被人們作為一個優秀作品的例子被大加讚揚,這些人中包括著名的電腦科學家,Smalltalk的發明人——Alan Kay。 有一個傳言,據說McCarthy當時想把這門語言的語法設計往後拖一拖,等到他把一些有趣的事做完之後,再回過頭來給這門給予Lambda演算理論的語言加上一些數學家們熟悉的語法,可是他的一個學生發現,在一個還沒有定義正式語法的抽象語法上中寫程式,感覺非常好,於是McCarthy乾脆就決定不定義Lisp的語法。

直到如今,Lisp的“語法”定義中值得一提的規則似乎只有一條“括號要配對”,其它的都是“語義”上的規範。 這樣做當然不是沒有代價的,很快Lisp就出現了第一個分支Scheme。這個語言由Guy Steele, Jr.和他的老師Gerald Sussman設計。這兩位最開始的工作是改進Lisp,他們共同把Lisp由Dynamic scope變成了Lexical scope。今天幾乎大家熟悉的所有語言都是Lexical scope。後來他們共同把Continuation這個概念引入了Lisp,於是一門新語言就這樣誕生。 隨後,Sussman把Lexical scope和Scheme中的一些其它概念都引入了Lisp,並由此確立了Common Lisp的標準,Sussman本人也一直是Common Lisp的主力。

作為一門最早出現的FP語言,Lisp當然有它的缺點,其中最為人詬病的恐怕就是括號了,所以隨後出現的許多FP語言都試圖使用另外的語法來清晰的描述程式,這其中最著名的當屬Haskell,Haskell是一門“純正”的FP語言,在Haskell中,變數不能賦值,沒有迴圈,甚至沒有程式流程,一切都是函式。

相關文章