有哪些流行的(当然,“流行”是相对的)适用于不同LISP“口味”的Web框架?
Hunchentoot也相当普及。
什么是Weblocks?
Weblocks是一个基于continuations的Web框架,使用Common Lisp语言编写。
已经提到了大多数(也许全部)著名的Common Lisp Web框架,所以我只是想添加一些评论。
Hunchentoot在大多数人理解的意义上并不是一个“Web框架”。 它是一个HTTP服务器(非常好的HTTP服务器)。
Drew Crampsie的“Lisp on Lines”看起来非常有前途,但我不确定它有多远。 我一直在等待公告。
Marco Baringer的UnCommon Web在许多著名的CL实现上运行:Allegro CL,CMUCL,Clozure CL(以前称为OpenMCL),GNU clisp和SBCL。唯一缺少的是LispWorks;我不知道这是否意味着它还没有被测试过可以工作,还是已知不能工作,或者是什么情况;但如果它在所有这些其他方言上都可以运行,那么很可能可以轻松地使其在任何其他方言上运行。
我曾广泛搜索适用于Lisp的好的Web框架,但它们都有些不易上手。UCW的架构对我来说似乎不太自然(我忘记原因了;我已经很久没研究了),而KPAX貌似已经不再维护(我想)。
符号式Web看起来非常有趣,我认为Weblocks最有意思,但是Weblocks没有很好的文档,对新手来说可能会比较吓人。 我上次看到SymbolicWeb还很不成熟,但从那时起它可能已经进步了一些。现在的特性页面看起来还不错。
你可以采取不同的方法。如果你想要一个纯Lisp的方法,那么你可以:
如果你接受混合方法,这是我目前正在尝试的:我为Qooxdoo编写了一个Lisp JSON-RPC后端,因此我可以通过像Cherokee这样的超快速http服务器提供纯JavaScript前端,并让Cherokee将连接分配给我想要运行在Lisp中的许多后端json-rpc服务器。非常非常可扩展。我还远未解决错误和挑战,但很容易让它开始工作。 json库使得后端变得非常简单-Qooxdoo本身实际上更难,我认为(但我不是JS开发人员)。
我还将检查来自Allegro的WebActions,因为具有付费支持的可用性有一定吸引力-更不用说Allegro可能是可用的最佳CL实现(His Kennyness使用它 :-))。
通用Lisp
很多常见的工具(Hunchentoot、UCW、LoL)已经被提到过了。 Franz为Allegro Common Lisp(并移植到其他Lisp中)提供了以下两个选项:
这两个选项都是开源的。我倾向于使用AllegroServe,在需要时提取工具,但有些人真的很喜欢WebActions。
我曾经使用Araneida相当长的一段时间,我更喜欢它的风格而不是AllegroServe,但它自2006年以来就没有得到维护。