為敏捷團隊準備的Lisp

agile_boy發表於2009-03-16

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作為一種備用方案。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14639675/viewspace-567457/,如需轉載,請註明出處,否則將追究法律責任。

相關文章