序二
我是領域特定語言(domain specific language,DSL)的推崇者,也開發過好幾種領域語言甚至通用語言,其中包括文檔生成語言(類似于Doxygen)、服務描述語言(SDL)(類似于微軟的IDL)、Q語言(通用腳本語言,主要用于與Go語言便捷交互)、文本處理語言(TPL)、二進制處理語言(BPL)、Go+語言(與Go語言兼容的通用靜態語言,主要用于數據科學領域)。
多數開發者可能覺得創建一門編程語言離自己很遙遠。但是,從泛化的角度來說,領域特定語言就在每個開發者的身邊。我的第一份工作是在金山軟件做文字處理、電子表格、演示三套件。其實我認為它們也是領域特定語言,Word+VBA與HTML+JavaScript并沒有本質上的不同。而我們程序員使用得很多的Markdown同樣是一種領域特定語言。
我們需要領域特定語言。軟件的開放性往往是由領域特定語言承載的。我們需要創建新的領域特定語言,新的領域特定語言極有可能就是新的生產力。例如,人們需不需要新的動畫生成語言呢?非常需要。創建這樣的領域特定語言需要有很強的領域知識。一旦這些領域知識被領域特定語言固化,就會成為極強大的生產力工具。
那么,你是否想基于Go語言創建新的領域特定語言呢?本書將帶你進入語言創建之旅,你可以從中尋找自己的答案。
許式偉
上海七牛信息技術有限公司首席執行官
推薦閱讀
- Linux C/C++服務器開發實踐
- Learning Chef
- Learning SQLite for iOS
- Learning ArcGIS Pro
- Advanced Oracle PL/SQL Developer's Guide(Second Edition)
- 運用后端技術處理業務邏輯(藍橋杯軟件大賽培訓教材-Java方向)
- Unity 2017 Mobile Game Development
- Android Wear Projects
- 零基礎Java學習筆記
- HTML+CSS+JavaScript網頁設計從入門到精通 (清華社"視頻大講堂"大系·網絡開發視頻大講堂)
- 鴻蒙OS應用編程實戰
- Go語言開發實戰(慕課版)
- C語言程序設計實訓教程與水平考試指導
- Python物理建模初學者指南(第2版)
- Python繪圖指南:分形與數據可視化(全彩)