对不起,很长的文章,但这个论坛总是要求用例:-)。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