2010年2月18日 星期四

Practical Common Lisp - ch1 Introduction: Why Lisp?

打算寫下每章摘要, 看看這樣有無幫助學習

http://gigamonkeys.com/book/introduction-why-lisp.html

摘要

  • Motto: The programmable programming language. 要啥新功能就自己加吧, 不用擔心核心沒有。
  • Lisp 是可以被編譯成 native code 的, 這意味著它可以跑得更快 (相較於用 interpreter 執行)。
  • 用 Lisp 可以寫得更快 (作者舉了他老爸和他自己幾個例子)。
  • Scheme 和 Common Lisp 不同。前者較純易於用作教學, 但較不跨平台, 較難用來寫產品 (solve real world problem); 後者則相反, 擁有成熟的資源, 包含 GUI 函式庫、multi-thread、socket 等。

疑問

  • CL 可以跑得多快? 依這裡的數據來看, 是 C 的三倍慢, 似乎挺快的 ( Python3 是 43 倍慢)。不知實際應用時如何?
  • CL 的函式庫是否齊全? 主流語言 (C/C++, Java, Python, Ruby, Perl, PHP, Java Script 等) 有龐大成熟的函式庫, 量多又穩。
  • CL 的入門門檻?
  • 若 CL 真的如此強大, 也不需擔心上述問題, 為啥 CL 沒有盛行?

1 則留言:

  1. Common Lisp 的問題:
    1. S-expression 很多人會怕
    2. Common Lisp 語法老舊,它還是大小寫不分的,而且對於現代常用的如 Hash 寫起來不太人性化。
    3. Common Lisp 產品太多,缺乏一個整合好用的,尤其在 Windows 平台上。GUI、multi-thread、socket 這些不在 Common Lisp 標準函式庫內,變成各家自行擴充,沒有共通。

    回覆刪除

在 Fedora 下裝 id-utils

Fedora 似乎因為執行檔撞名,而沒有提供 id-utils 的套件 ,但這是使用 gj 的必要套件,只好自己編。從官網抓好 tarball ,解開來編譯 (./configure && make)就是了。 但編譯後會遇到錯誤: ./stdio.h:10...