BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

为敏捷团队准备的Lisp

| 作者 Kurt Christensen 关注 0 他的粉丝 ,译者 郑柯 关注 3 他的粉丝 发布于 2007年10月30日. 估计阅读时间: 4 分钟 | 都知道硅谷人工智能做的好,你知道 硅谷的运维技术 也值得参考吗?QCon上海带你探索其中的奥义

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中文站内容建设,请邮件至china-editorial@infoq.com

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

值得考究的东西还是很多 by 熊 节

> 当客户从我们的肩膀上看过 来的时候,我们当时马上打开服务器,编写那个功能特性的代码,运行一些测试,然后就直接发布了。……我认为没有多少其他的开 发平台能够让我进行这样的尝试。

这个,实际上,几乎所有的开发平台都能做到。它需要的其实是构建自动化、测试自动化和部署自动化。以现在的机器性能,除了编写代码本身,耗费时间的通常不是构建、测试和部署这些环节,而是人们执行这些环节的动作。当这些动作没有被自动化的时候,你才无法“进行这样的尝试”。

最令人担忧的仍然是库的完善程度。虽然说编写库函数都是没有太大技术难度的事情,但最终决定开发效率、决定你能不能敏捷起来的,是不是有趁手的库仍然是一个重要的因素。Ruby和Python的受到青睐,主要的原因并不只是语言本身。

Re: 值得考究的东西还是很多 by Jacky Li

我基本上同意Jeff的观点。第一眼看到“使用Lisp的最大好处之 一就是可以直接在运行中的系统之上工作。”这句话的时候,我就在想,这有啥稀奇的地方?至于再说到库的完善程度,不妨问一下,如果Java没有庞大的开源世界的支持,对开发人员来讲是何等痛苦的事情?

语言特性能决定一份合同吗? by B Necromancer

其实你的雇主(很有可能包括你的老大),他们才不关心你用哪种语言开发,你用什么方法开发?他们关心的是第一版可使用的软件什么时候才能交付,花费的成本,以及以后维护的费用。

就像上例子所讲得,他们在给雇主一些原型的演示之后,就搞定合同了。

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

3 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT