领域特定语言为什么现在写这本书_领域特定语言为什么现在写这本书试读-查字典图书网
查字典图书网
当前位置: 查字典 > 图书网 > 编程 > 领域特定语言 > 为什么现在写这本书

领域特定语言——为什么现在写这本书

DSL已问世很长时间,但近些年来,它们掀起了一股流行风潮。与此同时,我决定用几年的时间写这本书。为什么呢?虽然我并不知道自己能否给这股风潮下一个权威的定义,但是可以分享一下自己的观点。 在千禧年到来的时候,编程语言界─至少在我的企业软件世界里─隐约出现了一种颇具统治性的标准。先是 Java,它在几年的时间里风光无限。即使后来微软推出的C#挑战了Java的统治地位,但这个新生者依然是一门跟Java很相似的语言。新时代的软件开发被编译型的、静态的、面向对象的、语法格式跟C类似的语言统治着(甚至连VB都被迫变得尽可能具有这些性质)。 然而人们很快发现,并不是所有的事情都能在Java/C#的霸权下运作良好。有些重要的逻辑用这些语言无法很好实现,这导致了XML配置文件的兴起。不久之后,有程序员开玩笑说,他们写的XML代码比Java/C#代码都多。这固然有一部分原因是想在运行时改变系统行为,但也体现出人们的另外一个想法:用更容易定制的方式表达系统行为的各个方面。虽然XML噪音很多,但确实可以让你定义自己的词汇,而且提供了非常强大的层次结构。 不过后来人们实在无法忍受XML那么多的噪音了。他们抱怨尖括号刺伤了他们的双眼。他们希望一方面能够享受XML 配置文件带来的好处,另一方面又不用承受XML的痛苦。 我们的故事到现在讲了一半,这个时候Ruby on Rails横空出世,耀眼的光芒让一切都褪尽了颜色。无论Rails这个实用平台在历史上会占据什么样的位置(我觉得这确实是个优秀的平台),它都已经给人们对于框架和库的认识带来了深远的影响。Ruby社区有一个很重要的做事方式:让一切显得更加连贯。换句话说,在调用库的时候,就像用一门专门的语言进行编程一样。这不禁让我们回想起一门古老的编程语言:Lisp。通过它我们也看到了Java/C#这片坚硬的土地上绽开的花朵:连贯接口(fluent interface)在这两门语言中都变得流行起来,这大概要归功于JMock和 Hamcrest的创始人的不断努力。 回头看看这一切,我发现这里面有知识壁垒。有的时候,使用定制的语法会更容易理解,实现也不难,人们却用了XML;有的时候,使用定制的语法会简单很多,人们却把Ruby用得乱七八糟;有的时候,本来在他们常用的语言中使用连贯接口就可以轻易实现的事情,人们非要使用解析器。 我觉得这些事情都是因为存在知识壁垒才发生的。经验丰富的程序员对DSL的相关技术所知寥寥,没法对使用哪一项技术做出明智的判断。我对打破这个壁垒很感兴趣。

展开全文

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

《领域特定语言》其他试读目录

• 写书初衷
• 为什么现在写这本书 [当前]
• 为什么DSL很重要
• 别畏惧这本大厚书
• 本书主要内容
• 本书读者对象
• 这是本Java书或者C#书吗
• 本书缺少什么
• 章节引用
• 模式结构
• 致谢