序二
我是領域特定語言(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í)行官
推薦閱讀
- Python爬蟲開發(fā):從入門到實戰(zhàn)(微課版)
- 編寫高質量代碼:改善Python程序的91個建議
- MySQL數據庫基礎實例教程(微課版)
- FFmpeg入門詳解:音視頻原理及應用
- Oracle JDeveloper 11gR2 Cookbook
- Getting Started with Laravel 4
- Android系統原理及開發(fā)要點詳解
- Angular開發(fā)入門與實戰(zhàn)
- Mastering Web Application Development with AngularJS
- Struts 2.x權威指南
- 超簡單:用Python讓Excel飛起來(實戰(zhàn)150例)
- Application Development with Swift
- Python 快速入門(第3版)
- Java語言程序設計實用教程(第2版)
- 零基礎學Java(第5版)