標籤:語言工作台
語言工作台:領域特定語言的殺手級應用程式?
軟體開發中的大多數新點子其實都是舊點子的新變體。本文說明其中一種,一種我稱為語言工作台的工具類別的興起概念,其中包括 Intentional Software、JetBrains 的 Meta Programming System 和 Microsoft 的 Software Factories。這些工具採用一種舊式開發風格,我稱之為語言導向程式設計,並使用 IDE 工具,試圖讓語言導向程式設計成為一種可行的途徑。雖然我並非預測家,無法斷言他們能否實現其雄心壯志,但我確實認為這些工具是軟體開發領域中最有趣的事物之一。有趣到足以撰寫這篇論文,試著至少大略說明它們如何運作,以及它們未來實用性的主要問題。
為 DSL 產生程式碼
當你建立一個領域特定語言 (DSL) 時,你如何讓它可執行。對於內部 DSL,這個問題很容易回答,因為它們會嵌入到真實語言中。外部 DSL 需要更多工作。在這裡,我取一個簡單的 DSL 範例,並展示幾個從中產生程式碼的簡單方法。
運作中的語言工作台 - MPS
使用語言工作台與使用傳統的領域特定語言非常不同。這是使用 JetBrains Meta Programming System (MPS) 建立一個小型但有趣的 DSL 的範例。你可以使用它來感受使用語言工作台會是什麼樣子。
語言工作台與模型驅動架構
最近出現了一股開發工具的熱潮,這些工具允許你在多個領域特定語言 (DSL) 之間進行整合,我稱這些工具為語言工作台。許多關於語言工作台的討論都與物件管理組織的模型驅動架構 (MDA) 討論非常類似。在我看來,MDA 對不同的人來說有不同的意義,這會影響我們如何看待 MDA 與語言工作台之間的關係。當然,有許多 MDA 實務工作者正在使用 MDA 概念來建立語言工作台。然而,我的感覺是 MDA 提供的幫助充其量只是部分的。一個更廣泛的模型驅動開發 (MDD) 學派呼應了許多這些概念,但沒有與 MDA 標準的連結,這與語言工作台的概念非常一致。
SE 廣播 Podcast 討論特定領域語言
Thoughtworks 技術長 Rebecca Parsons 參與撰寫 DSL 書籍,我邀請她與 Markus Völter 談談 DSL。我們討論 DSL 是什麼、內部和外部 DSL 的差異,以及何時應該(不應該)使用 DSL。
說明性程式設計
世界上最常見的程式語言是什麼?
語言工作台
語言工作台是我在 2005 年創造的術語,用來描述一種新型的軟體開發工具,它透過豐富的多元整合環境,設計用於透過 特定領域語言 建立軟體。這些工具離主流仍有一段距離,但持續開發中且持續受到關注。它們是我認為少數能大幅改變程式設計領域的事物之一。
模型驅動軟體開發
模型驅動軟體開發 (MDSD) 是一種軟體開發風格,視自己為傳統程式設計風格的替代方案。此方法專注於建立軟體系統模型。這些模型通常透過圖形設計符號來體現,UML 是一種選擇。這個想法是使用這些圖形,將你的系統規格指定給建模工具,然後再用傳統程式語言產生程式碼。