對不起,很長的文章,但這個論壇總是要求用例:-)。Clojure REPL哲學和實用程序應用程序
我經常被要求爲我的組織編寫實用程序應用程序(GUI和命令行)。我最常用Java和最近的Scala寫這些。
Clojure(和其他Lisp)中的「哲學」似乎以REPL爲中心,我必須同意它創造了一個很好的開發環境,但我顯然不能生產那些需要用戶「安裝Clojure和Clojure-contrib,然後將該實用程序解壓縮到硬盤上的目錄中,使用以下類路徑從命令行啓動Clojure,...「。用戶不關心該實用程序是用Clojure編寫的。他們只想指向並點擊,或者至多鍵入「java -jar Utility.jar - ?」在命令行上。
我的問題圍繞着編譯和將應用程序分離到許多名稱空間/文件中。
我知道main
方法必須是在包括(gen-class...)
命令(或在ns
命令:gen-class
子句)一個Clojure的文件。對於額外的Clojure文件,我是否也應該這樣做?還是應該將它們保留爲打包在JAR中並由main
文件加載的源代碼?在開發過程中如何測試REPL中的附加文件?我一直在使用leiningen,cake和maven來構建自包含的JAR(包含解包的clojure.jar,clojure-contrib.jar和commons-cli.jar文件),但到目前爲止,我一直在寫我的代碼與main
方法相同的文件中。
不能做一個Web應用程序。我們在全國各地都有服務器 - 在防火牆之外,我需要在公司和總部運行公用事業。啓動時間從未成爲Java應用程序的問題;大多數是DB工具,它們會在查詢等方面做很多事情 - 數據庫通常是瓶頸。不過謝謝你的回答。 – Ralph 2010-12-13 21:57:27
@Ralph:好的,我在下半部分添加了一條分隔與您的問題相關的上半部分,這不適用於您的情況。 – 2010-12-13 22:00:13