为敏捷团队准备的Lisp

Paragent是一个基于web的、开源的IT管理系统,它的开发语言是,是……Common Lisp?在他们最新的blog里面,Paragent的开发人员描述了他们使用Lisp的经验:

在开发新的服务器控件时,除了对Ruby/Rails、PHP和Python等一系列开发语言进行研究之外,我们决定更深入地研究下使用Lisp作为实现 语言的可能性。花费了大量精力之后,我们决定给Lisp一个机会。真没有辜负我们的期望,在有限的预算成本下,我们以创纪录的时间开发了Paragent 的第一版,并使其上线。

InfoQ访问了Paragent.com的CTO Tim Ritchey,希望他能谈一下为什么他的团队选择Lisp,以及它是如何被用来完成任务的。

作为一个开发新产品的小公司,我们与产品的早期使用者有紧密的联系,而且我们会迅速地把他们的反馈放入到阶段性的产品发布中去。使用Lisp的最大好处之 一就是可以直接在运行中的系统之上工作。当你编译一个函数时,它会被放入到运行中的映像中,你可以马上得到反馈。不会有长时间的“编辑-编译-运行”周期 来打断你的前行。在结对编程时,这是非常有用的,因为几乎没有停顿的时间。 

我们有一个例子:客户当时在开发现场与我们谈话,他们提出了一个非常重要的功能特性,产品是否具备这个特性会决定是否签订合同。当客户从我们的肩膀上看过 来的时候,我们当时马上打开服务器,编写那个功能特性的代码,运行一些测试,然后就直接发布了。30分钟之后,我们就直接签约了。我认为没有多少其他的开 发平台能够让我进行这样的尝试。

最近Lisp的流行又掀起了小小的复兴之势,这要归功于Peter Seibel的书籍《Practical Common Lisp》 。当然,一些公司已经成功使用Lisp好些年了。但是新接触Lisp的开发者都有这样一个抱怨:它已经有些过时了,而且明显缺乏第三方的开发库。说起工具,Paragent的开发人员经过仔细考虑,自己开发了Cusp :一个供Eclipse使用的Common Lisp开发插件。当被问到缺乏开发库对于Paragent是否是问题时,Tim Ritchey这样说:

刚开始时,我们对开发库相关的问题有些担心……最后,我们没有在这方面遇到什么问题。在大多数情况下,对于我们需要的部分都有很好的开发库(HTTP客户 端、SMTP、安全、图形渲染等);此外,Common Lisp有非常好的外部函数接口,如果没有原生的Lisp库,我们可以带入任何我们需要的东西。 

我认为造成人们对Common Lisp望而生畏的一个因素是:在他们的印象中,许多开发库都是由个体程序员一次性完成的成果,而其他语言的开发库都是由整个团队一起合作完成的。我不想 过多强调Lisp在生产力方面的优势,但是大部分的开发库,即使人手不足而且很少更新,这些库实际上也是非常稳定且具有很高生产力的……更少数目的 Lisp开发者意味着我们看起来显得很单薄,但是我们没有遇到因为开发库支持的原因导致无法继续工作的状况。

Lisp是否得到了新一代开发人员的青睐,这还有待观察。但是经验丰富的开发人员知道,在他们所做的全部关于技术的抉择中,开发语言的选择所产生的影响最大,因此,任何认同敏捷软件开发原则的团队至少会把Common Lisp作为一种备用方案。

查看英文原文: Lisp for Agile Teams 译者简介:郑柯,目前任职《程序员》杂志社高级编辑,有志于在中国的软件开发业界推广Agile的理念和方法论,笃信以人为本,关注Ruby,关注敏捷,关注人。参与InfoQ中文站内容建设,请邮件至 [email protected]

你可能感兴趣的:(为敏捷团队准备的Lisp)