对于各种风格的LISP,流行的(好的,流行的是相对的)Web框架有哪些?
PLT Scheme具有内置的,基于连续的Web服务器.
更新:PLT Scheme现在称为Racket.
Hunchentoot也很普遍
什么是Weblocks?
Weblocks是一个用Common Lisp编写的基于continuation的Web框架.
http://common-lisp.net/project/cl-weblocks/
已经提到了大多数(也许全部)着名的Common Lisp Web框架,所以我只想添加一些注释.
在大多数人的意义上,Hunchentoot不是一个"网络框架".它是一个HTTP服务器(非常好的).
Drew Crampsie的"Lisp on Lines"看起来非常有前景,但我不确定它有多远.我一直在等着听一个消息.
Marco Baringer的UnCommon Web运行在许多着名的CL实现上:Allegro CL,CMUCL,Clozure CL(以前称为OpenMCL),GNU clisp和SBCL.唯一缺少的主要是LispWorks; 我不知道这是否意味着它没有经过测试工作,或者已知不工作,或者是什么; 但是如果它运行在所有其他方言上,那么它可能很容易让它在任何其他方言上运行.
对于Clojure,您可以尝试Compojure.
Common Lisp
很多常见的嫌疑人(Hunchentoot,UCW,LoL)已经被提及.Franz为Allegro Common Lisp提供(并移植到其他Lisps):
在较低级别(自己处理HTTP请求),AllegroServe.
WebActions在更高层次(更多的是"框架").
两者都是开源的.我倾向于使用AllegroServe,根据需要分解实用程序,但有些人非常喜欢WebActions.
我使用Araneida已经有一段时间了,我更喜欢它的风格AllegroServe,但它自2006年以来一直没有得到维护.
我已经非常广泛地搜索了一个用于Lisp的良好Web框架,我发现它们都有些无法访问.UCW的架构对我来说似乎不太自然(我不记得为什么;从我调查它已经有一段时间了),并且KPAX不再维护(我认为).
符号网看起来非常有趣,我认为Weblocks是最有趣的,但Weblocks的文档记录不是很好,对新手来说可能非常令人生畏.SymbolicWeb上次看起来不成熟,但从那时起它可能已经成长了一些.该功能页面在今天看来还不错.
您可以采取不同的方法.如果你想要一个纯粹的lisp方法,那么你可以:
如果您能够熟练地阅读代码并理解延续,那么您可以尝试使用Hunchentoot后端的Weblocks(Weblocks依赖于尚未抽象的Hunchentoot).在一两个月内应该有一个真实的用户手册,但与任何OSS项目一样,这样的承诺是粗略的.
同样,您可以尝试使用SymbolicWeb.[ 更新:没关系,项目已不复存在]
滚动你自己.说真的 - 有谁帮助HTML生成,有javascript和json库可用,usockets,elephant,cl-sql,hunchentoot,aserve和许多你可以一起烘焙的实用程序库.
如果您对混合方法没问题,我现在正在尝试这个:我为Qooxdoo编写了一个Lisp JSON-RPC后端,所以我可以通过像Cherokee这样的超高速http服务器提供纯javascript前端.让Cherokee根据需要在Lisp中运行与尽可能多的后端json-rpc服务器的连接.非常,非常可扩展.我远远没有弄清楚扭曲和挑战,但是开始工作非常简单.json库使得后端工作变得简单愚蠢 - 我认为Qooxdoo本身实际上更难(但我真的不是JS开发人员).
我也将从allegro查看WebActions,因为付费支持的可用性有一定的吸引力 - 更不用说Allegro可能是最好的CL实现(他的Kennyness使用它:-)).
UnCommonWeb(UCW)经常被提及http://www.common-lisp.net/project/ucw/ - 它不像现在的环境中的REST,更像是Smalltalk的SeaSide(但是再一次,SeaSide是相当的EN-时尚).
LeftParen
Lisp-on-lines是一个构建在CLSQL和UCW之上的Web应用程序框架,它提供了一个类似于Ruby on Rails的应用程序开发模型.现在可以在http://versions.tech.coop/lisp-on-lines/找到它.
http://www.cliki.net/lisp-on-lines
http://kevin.casa.cavewallarts.com/LISP/LOL/lol.html