在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框架。 看一下:

  • 网络锁(Common Lisp)
  • Compojure(Clojure)
  • 如果你想要很好的支持lisp工具,那么你需要为它们付费。 开源工具周围并没有一个非常大的社区,因此他们没有像Python上的Django那样的文档/采用。

    这里有一些商业的lisp产品:

  • Lispworks
  • 弗朗茨Allegro CL
  • 另外值得注意的是,Reddit最初是在Lisp中构建的,但后来作者将其迁移到Python,并指出缺乏使用良好且记录在案的库。 (链接)

    链接地址: http://www.djcxy.com/p/60939.html

    上一篇: Is it feasible to do (serious) web development in Lisp?

    下一篇: What's the best way to learn LISP?