clj.rs(網站簡稱 cljrs)是一個以 Rust 程式語言重新實作的 Clojure 方言,目標是把 Lisp 家族語言常見的特性,例如持久化資料結構與巨集系統,帶進 Rust 的生態系統裡。對想要 Lisp 式開發體驗、又想享受 Rust 生態系統(像是套件管理與效能)的開發者來說,clj.rs 提供了一個可以兩邊兼顧的執行環境。
這個語言保留了 Clojure 的核心設計,包括不可變的持久化資料結構,以及可以自訂語法的巨集系統,同時支援與 Rust 原生程式碼互通。使用者可以選擇把程式編譯成執行檔,或是直接用直譯模式跑。套件已經發佈到 Rust 的官方套件庫 crates.io,網站上也提供一個瀏覽器內的線上 REPL,不用安裝任何東西就能先試用看看。
專案官網特別標明自己「特別適合用作代理型編碼執行時環境」,意味著開發者把它設計成方便讓 AI 程式代理呼叫、執行程式碼的環境之一,呼應目前很多工具都在往「AI 代理友善」方向設計的趨勢。網站也老實標註「Early stage; expect rough edges」,提醒使用者這還是個早期、會有粗糙地方的專案,原始碼公開在 GitHub 上,也有獨立的語言文件站 docs.clj.rs。
對剛開始學程式的孩子來說,這類「用一種語言重新實作另一種語言」的專案是很好的練習題材:它逼著作者把 Clojure 的語法、資料結構、巨集這些概念都想得很清楚,才能用 Rust 重新搭出一套一樣能動的系統。如果孩子已經學過一種程式語言,鼓勵他們去讀讀看像 clj.rs 這種小型語言實作的原始碼,會比單純背語法更能理解程式語言本身是怎麼運作的。
開源程式語言Rust