官术网_书友最值得收藏!

序二

我是領域特定語言(domain specific language,DSL)的推崇者,也開發過好幾種領域語言甚至通用語言,其中包括文檔生成語言(類似于Doxygen)、服務描述語言(SDL)(類似于微軟的IDL)、Q語言(通用腳本語言,主要用于與Go語言便捷交互)、文本處理語言(TPL)、二進制處理語言(BPL)、Go+語言(與Go語言兼容的通用靜態語言,主要用于數據科學領域)。

多數開發者可能覺得創建一門編程語言離自己很遙遠。但是,從泛化的角度來說,領域特定語言就在每個開發者的身邊。我的第一份工作是在金山軟件做文字處理、電子表格、演示三套件。其實我認為它們也是領域特定語言,Word+VBA與HTML+JavaScript并沒有本質上的不同。而我們程序員使用得很多的Markdown同樣是一種領域特定語言。

我們需要領域特定語言。軟件的開放性往往是由領域特定語言承載的。我們需要創建新的領域特定語言,新的領域特定語言極有可能就是新的生產力。例如,人們需不需要新的動畫生成語言呢?非常需要。創建這樣的領域特定語言需要有很強的領域知識。一旦這些領域知識被領域特定語言固化,就會成為極強大的生產力工具。

那么,你是否想基于Go語言創建新的領域特定語言呢?本書將帶你進入語言創建之旅,你可以從中尋找自己的答案。

許式偉

上海七牛信息技術有限公司首席執行官

主站蜘蛛池模板: 陇西县| 罗甸县| 确山县| 双峰县| 那曲县| 磐安县| 永春县| 秦皇岛市| 三明市| 诸暨市| 富蕴县| 富宁县| 项城市| 扬中市| 万宁市| 南通市| 大渡口区| 浦城县| 绵竹市| 绥江县| 红桥区| 大宁县| 安阳市| 朔州市| 密山市| 梁平县| 新乡市| 崇仁县| 海伦市| 新源县| 彭州市| 交口县| 永平县| 宜春市| 延川县| 和政县| 金乡县| 庆阳市| 兴国县| 平原县| 九寨沟县|