有人在使用Lisp开发MySQL后端的Web应用吗?

6
我不断听到Lisp是一种非常高效的语言,我正在享受SICP。然而,我想要一些有用的东西,可以让我在Web应用程序中替换PHP进行服务器端数据库交互。是否存在类似于PHP的PDO库的Lisp或Arc或Scheme或其中一种方言?

目前商业使用最广泛的Lisp方言是Common Lisp(在许多方面与SICP的Scheme不同),而CLSQL库与MySQL非常兼容。使用quicklisp(.org)非常容易进行设置。我已经在一些重要项目中使用了CLSQL,它非常可靠和强大(尽管我建议使用Postmodern的PostgreSQL作为更好的选择)。 - Luka Ramishvili
9个回答

4

既然没有人提到,你可以尝试Postmodern,它是一个与PostgreSQL更紧密集成的接口,因此不假装在数据库之间进行可移植性。

我将其与hunchentootcl-who一起使用,并构建了一个非常好的网站。


Postmodern很棒,但OP要求使用MySQL,对此CLSQL更适合(它的ORM支持更多功能,但Postmodern更干净,通常工作效果更好)。 - Luka Ramishvili

4

3

newLISP - http://www.newlisp.org/ - 支持MySQL,但我没有使用过(newLISP)。

新的LISP编程语言支持MySQL数据库,但我个人没有使用过它。

1
提前警告。如果你喜欢SICP,newLISP会让你非常失望。 - jfm3
要加倍地警惕:SICP使用Scheme语言,而大多数Lisp纯粹主义者认为newLisp实际上更像是一种Scheme而不是Lisp... - philosodad
三倍警告:newLisp几乎不是一种真正的Lisp。 - JasonFruit

2
如果你很喜欢 SQL,那么 CL-SQL 可以将其映射为 CLOS 对象。它似乎比 Elephant 更成熟。
我正在自己的网站上使用它。

2

我使用SBCL和CL-SQL取得了良好的成功。CL-SQL具有对象映射API,但我使用了简单的SQL API,它只返回列表,这已经足够好了。在Clojure语言中,您可以通过maps或structs {:col1 "a", :col2 "b"}与JDBC交互,因此生成的类库不会为您提供更简单的代码,该语言可以很好地处理它。根据我的经验,Lisp和SQL之间的垃圾比静态语言和SQL之间的垃圾要少。


2
我们的Common Lisp ORM解决方案是http://common-lisp.net/project/cl-perec/
底层的SQL库是http://common-lisp.net/project/cl-rdbms/(已与PostgreSQL完全测试,具有玩具SQlite后端和较为可靠的Oracle后端)。
我们最初使用CLSQL,但在一些困难之后,我们决定自己开发。
这些库和PostgreSQL用于为匈牙利政府开发的集群Web应用程序中。该应用程序用于规划市镇的预算,拥有约4000个用户,在高峰时段有500个。更多信息可在http://common-lisp.net/project/cl-dwim/找到。

很遗憾,没有使用它的示例 :-( - ruby_object
hu.dwim.perec有一个广泛的测试套件,许多其他hu.dwim.*库也是如此。 - Attila Lendvai

1
只要你将Webapp切换到Lisp,就考虑使用持久化:现在您有一个持续运行的Lisp镜像,保存了应用程序的所有内容。我个人使用 Elephant进行此操作。
Elephant可以使用CL-SQL或BDB作为其后端,这意味着如果您有MySQL正在运行,则可以使用它。我发现使用SQLite非常实用。

1

0

我们在Paragent.com的后端使用SBCL、UCW、CL-SQL和MySQL,这些工具为我们提供了非常好的服务。我们还有许多客户通过我们的咨询部门Bitfauna,使用UCW/CL-SQL/MySQL来构建定制网站。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接