两个商业 Common Lisp 实现的比较

Allegro CLLispWorks

  • 这两个商业实现在实际生产的应用上各有什么样的优势和劣势?
  • SBCL+SLIME/SLY(这里包括它们是因为这两个商业实现自带了 IDE) 与这两个商业实现之间有多少差距?
  • 对于个人用户来说,哪一个更值得一试(试用版和付费版)?
1 个赞

对个人用户来说,尤其是你这样还不知道自己要什么功能的,不值得试,因为哪怕个人版授权费就够喝一壶了,有什么功能,它们网站上都写得清清楚楚,有问题去问客服

至于 IDE,它们也都支持 slime/sly,自带的 IDE 比起来除了有原生 GUI 看起来好看点也没啥特殊功能。

6 个赞

我是 Franz Inc. 的员工,所以我对 Allegro CL 了解更多一些,以下仅供参考:

这两个商业实现在实际生产的应用上各有什么样的优势和劣势?

Allegro CL 的优势在于,我们一直在用 Allegro CL 开发 AllegroGraph (图)数据库并且同时支持若干历史悠久的项目与客户,所以这是一个经受了时间和质量考验的 Lisp 实现。相较于 LispWorks,我并不了解它是否有任何至今依旧在支持的大型商业项目。上一次听说还要追溯到读田春冰河的博客。另一方面,我们的客户支持一直做的很好,有问必答。我记得 LispWorks 的客户支持是要每年购买的。当然了,它的社区邮件列表其实也挺够用了。

有一个很特定的优势我想简单提一下。因为 Allegro CL 和 Franz Lisp 的渊源,Allegro 支持在没有 Copy 的前提下直接传递 Lisp 数组到 C/Fortran 接口上。这个功能对于高性能服务器的开发简直是神来之笔,与此同时,我们的垃圾回收对此亦有特定的优化,这个特性也帮助我们的数据库产品能在性能上和其他的诸如 Java 实现的竞争者立于不败之地。

至于劣势,相比于 LispWorks,我觉得我们的文档没有它“美观”。我们的客户支持虽然很好,但是我们在开源上并不领先。这也间接导致 Allegro 生成的机器码要逊色于 SBCL,因为我们优化工作都是为了支持 AllegroGraph 产品和特定的客户需求。

SBCL+SLIME/SLY(这里包括它们是因为这两个商业实现自带了 IDE) 与这两个商业实现之间有多少差距?

很明显,LispWorks 的下断点和 debug 调试要更“美观”。Allegro CL 的 IDE 自从 11.0 之后已经默认在浏览器里运行了,无论是流畅度还是 debug 调试的功能都要略逊于 LispWorks。然而,如果你是 Emacs 的用户的话,我个人觉得使用 Allegro CL 要更合适。

对于个人用户来说,哪一个更值得一试(试用版和付费版)?

除非你的公司替你报销,抑或你有充足的钱和时间资源,否则两者皆不推荐;相反地,我推荐 LispWorks,只因为它的 license 对于个人用户来说更合理。

11 个赞

在这种历史悠久的小众产品公司工作,应该挺轻松的吧。

1 个赞