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

序二

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

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

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

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

許式偉

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

主站蜘蛛池模板: 庄浪县| 屏山县| 宜君县| 宝兴县| 新干县| 鄂托克前旗| 烟台市| 扎鲁特旗| 白河县| 靖安县| 彭阳县| 古浪县| 灌南县| 宜君县| 武强县| 彭州市| 江西省| 祥云县| 溧阳市| 永州市| 榆林市| 山西省| 鹰潭市| 炎陵县| 东安县| 文山县| 霸州市| 华安县| 喀喇沁旗| 闽侯县| 长武县| 富源县| 洛南县| 兴业县| 宁陵县| 汉中市| 洱源县| 绥宁县| 偃师市| 琼中| 清水河县|