DSL属于伪创新吗?

Zeyu 2024-1-4 9:20

马丁福勒的领域特定语言DSL是否有阅读的价值?属于伪创新吗?

UMLChina潘加宇

这个问题已经有点伪创新了。

问题应该是:

1. 马丁福勒写的《领域特定语言》是否有阅读的价值?

2. DSL属于伪创新吗?

问题1的回答:

Fowler的书写于2010年,是一本DSL的普及书籍,不反对阅读。

问题2的回答:

DSL不是伪创新,和其他各种“模型驱动”一样,是提高软件复用级别的路线之一。它把领域知识组织成“语言”的形式,构造一门DSL和构造一门编程语言没有本质区别。

UML可以看作软件建模领域的一门DSL。

DSL的概念早就存在,Fowler在书的前言中也说:

图1 摘自《领域特定语言》,Martin Fowler,英文原书出版于2010年

图2摘自1986年的某期IEEE Expert,文章介绍了Lockheed(洛克希德)公司的软件技术中心。

图2 摘自IEEE Expert, November 1986

文章中除了提到“领域特定语言”、“代码生成”之外,还提到了“基于AI的软件开发环境”!

★注意,公司名只有Lockheed,后面没有Martin。要等到1995年,Lockheed才和Martin Marietta合并为Lockheed Martin。

**********

天下没有免费的午餐。把各种复杂领域知识和逻辑组织成“语言”,难度要比用UML画画类图要高。大多数人建模都还搞不定呢,还搞什么元建模。网络上那些教你轻松创建DSL的文章和教你轻松用EA画类图是一样的,是很轻松,但离真正解决问题还很远。

**********

还是要提一下:

DSL不是伪创新,但如果某位热衷于DDD的人士和你谈DSL,那可就不敢保证了。

就像量子物理不是伪创新,但如果一位文科教授写了一篇量子物理论文,或者谷爱凌发了一个量子物理教学视频,那得留个心眼。

图3 谷爱凌微博截图

**********

搜素了一下2001-2005年间的《非程序员》,里面也有一些DSL的内容:


weixinpanjiayu2