iT邦幫忙

2026 iThome 鐵人賽

DAY 4
0

https://ithelp.ithome.com.tw/upload/images/20260917/20112470c0qChXmOSi.jpg

什麼是ABCL?

ABCL全名是「Armed Bear Common Lisp」,是一個在JVM上的Common Lisp語言實現。

除了實現Common Lisp的標準規範外,支援流行的既定標準(不在標準規範中,但幾乎可以視作標準的規範),包含ASDF、Quicklisp、named-readtable等。也在ANSI標準實現上提供了Package別名、多執行緒,和與JAVA JVM天然交互的能力。

為什麼是ABCL?

我自己是很喜歡Common Lisp這個雖然古老,但異常靈活強大的程式語言(有多古老?第二個高級程式語言)。它讓我感覺程式開發人員真的在掌控程式語言。

Common Lisp的出現比C語言更早,僅在Fortran之後,是第二個出現高級程式語言。

有這麼一條定律:格林斯潘第十定律(Greenspun's tenth rule):「任何C或Fortran程序複雜到一定程度之後,都會包含一個臨時開發的、不合規範的、充滿程序錯誤的、運行速度很慢的、只有一半功能的Common Lisp實現。」。既然如此,為什麼不一開始就直接使用Common Lisp?我第一個接觸的Common Lisp實現是GNU CLISP,不過通常更推薦使用SBCLCCL,此外還有定位與lua類似,做為嵌入膠水語言設計的ecl和C++開發的Clasp。商業實現上還有Allegro CLLispWorks。LispWorks甚至有對於行動裝置開發的支援。

但既然這次的主要學習目標是JavaFX,自然要選擇使用JAVA實現的ABCL摩擦更小。這也就是為什麼雖然SBCL更穩定、快速,但卻使用ABCL進行開發與學習。

ABCL使用者文檔這麼形容:「JAVA有很棒的GUI函式庫,但並不是最棒的程式語言。LISP是世界上最棒的程式語言,但沒有標準的GUI函式庫。」

Benefits of using ABCL
-------

* Java has great GUI libraries, but it's not the world's greatest programming language
* Lisp is the world's greatest programming language but has no standard GUI libraries.
* Therefore: Write great applications using Java for your front-end GUI backed with Lisp code and get the best of both worlds.

現在就開始

如果你也想試試 ABCL,現在可以先在終端機確認 Java 執行環境:

java --version

確認可以執行後,接著閱讀準備ABCL執行環境,下載 ABCL 並在 REPL 中執行第一個 Hello ABCL。


上一篇
lesson -2: 跨平臺GUI框架有什麼替代品?
下一篇
lesson -4: Windows怎麼準備JAVA開發環境?
系列文
玩轉ABCL Lisp!用奇怪偏門的方式學習JavaFX7
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言