在Lisp中进行(严肃的)Web开发是否可行?
显然几乎所有的编程语言都可以编写几乎任何类型的应用程序,特别是在像Lisp这样强大的应用程序(无论是Scheme还是Common Lisp)中。 但是将它用于Web开发是否实用? 如果是这样,那么应该是一个好的起点? 哪里可以找到这种性质的项目的适当资源(工具,图书馆,文件,最佳实践,例子等)?
是的,Web开发是Common Lisp今天的优势之一。
作为Web服务器,使用Edmund Weitz博士的Hunchentoot,以前称为tbnl。
您可以使用mod_proxy作为反向代理或作为独立服务器将其作为Apache的后端运行。
各种HTML生成解决方案都可用,从PHP风格的模板到Lisp宏的黑客到XSLT。 只要你选择。
HTML-TEMPLATE就是一个例子。
Closure XML可用于XML解析,序列化,XPath 1.0和XSLT 1.0。 HTML标签汤解析也有Closure HTML。
(完全披露:我是Closure XML和Closure HTML的维护者。)
如果你喜欢,Parenscript可以让你的JavaScript体验更加清晰,但你当然也可以自己编写简单的旧JavaScript。
jwacs中的另一个很酷的JavaScript增强解决方案,用Common Lisp编写,并转换JavaScript以添加延续支持。
除了服务器之外,Web服务项目可能还需要一个HTTP客户端。
Drakma是今天使用的图书馆。
PURI对URI操作很有用。
还有更多! 一个起点是cliki,例如cliki.net/web。
在网络上,没有人知道你的服务器是用Common Lisp编写的:-)
Common Lisp中的Web开发既有效又有趣。
一些例子:
CL-WHO允许您在不忘记再次结束标记的情况下编写HTML。
Weblocks允许您使用内置验证以声明方式定义窗体:
(defview signup (:type form :caption "Sign up")
(username :satisfies #'valid-username)
(password :present-as dual-password :parse-as dual-password)
(receive-newsletter-p :present-as checkbox :parse-as predicate))
它还支持AJAX全自动方式,如果浏览器不支持它,则回退到正常链接。
cl-prevalence是SQL的一个非常简单的替代方法。
很多人最近都将这些技术用于关键任务应用 - 取得了成功。
事实上,最重要的CL开放源代码项目确实拥有出色的社区支持。
Web开发中有一些Web框架。 看一下:
如果你想要很好的支持lisp工具,那么你需要为它们付费。 开源工具周围并没有一个非常大的社区,因此他们没有像Python上的Django那样的文档/采用。
这里有一些商业的lisp产品:
另外值得注意的是,Reddit最初是在Lisp中构建的,但后来作者将其迁移到Python,并指出缺乏使用良好且记录在案的库。 (链接)
链接地址: http://www.djcxy.com/p/60939.html上一篇: Is it feasible to do (serious) web development in Lisp?