建構語言

2004 年 1 月 17 日

Bruce Eckel 的 近期文章 關於 ant 和 make 觸發我分享一些關於建構語言的想法。ant 和 make 都指定建構如何發生,它們是描述建構的語言。這兩者都廣泛使用且成功。然而兩者都遇到限制,在較大的系統中,人們從其他程式產生 ant/make 檔案是很常見的。

我想我同意 Bruce 的原因。簡單的建構很容易表示為一系列的任務和依賴關係。對於這樣的建構,ant/make 的功能運作良好。但更複雜的建構需要條件式邏輯,這需要更通用的程式語言建構,而這正是 ant/make 失敗的地方。

Ant 決定使用 XML 作為其檔案格式。當時我認為這是一個好選擇。在那些早期,我與 Matt Foemmel 在一個大型專案上合作,他建立了一個類似於 ant 的系統(當時沒有 ant,我們需要它)。他也選擇 XML 作為語言。對我們來說有道理,因為 XML 是描述階層資料的容許方式,而階層似乎符合建構腳本的需求。從那以後,我們都得出結論,程式語言才是更適合的方式,這不是一個好的 UseOfXml

由於我使用 Ruby 進行相當多的程式設計,我自然而然開始使用 Rake,一種 Ruby make。Rakefile 的有趣之處在於它們是具有少數慣例和支援的常規 Ruby 程式,可讓您宣告工作和相依性。我只有小工作可以使用它,到目前為止,我發現它非常方便。由於它是一種功能強大的程式語言,我預期它也能順利用於較大型的建置,我在建置檔案中發現它已方便地執行迴圈、子常式和清單收集等工作。