序
我很喜欢摆弄编译器,只要是亲手打造自己的语言,无论动手还是动脑都是一种享受。编程语言,尤其是DSL(Domain Specific Language,领域专用语言),能激起我极大的热情。
DSL这一概念并不是最近才发明的,Lisp开发者们早就在开发和使用所谓的“小语言”了。不过近年来,DSL确实在整个行业范围内被更广泛地使用和接受,相关工具和技术也日渐成熟。如果开发者想探索语言设计这一精彩世界,可以说现在的条件是前所未有的。
如同大多数语言,DSL的要旨在于沟通。精心设计的DSL可以以一种从外观到内在都极为自然的方式,传达出其所表示领域的本质和真意。DSL能帮助消除业务与技术的隔阂,促进项目干系人与程序员的沟通。这种能力比以往任何时候都更重要,更值得我们去追求。
Debasish在Scala和开源社区里都是受人尊敬的专家。他的博客既给人以学识上的启发,又充满阅读乐趣,多年来我一直在关注。Debasish一年前开始为Akka项目贡献力量,我这个长年的读者因而与他有了进一步的接触。往来言行一下子就表露出来,他不仅是一位深刻的思考者,还是一位有行动力的实干家。从那以后,与他讨论编程语言、设计成了我乐在其中的爱好。
这是一本令人激动的书。书中内容的涵盖面很广,而在此基础上又有相当的深度,除了带领读者穿梭于DSL发展的最前沿,它还将带领大家思考如何设计灵活而自然的DSL。此外,读者还将领略Scala、Groovy、Clojure、Ruby等各具特色的语言,掌握每一种语言解决问题的思路和手段。开卷有益,诚哉斯言。
Jonas Bonér
Akka项目、AOP框架AspectWerkz创建人