第一次接触 DSL 这个东西,看完 Ruby 编程语言第 8.12 节。有了一个大概的认识,但是不知道是不是正确。
我理解的领域特定语言是,利用 Ruby 的元编程特性,把指令粘合在一起并装成了各种模具,每次需要使用的时候就是按照这种模具填入新料就可以出结果了,多个模具通过不同组合就可以解决一系列复杂的问题,而且还能表现出灵活的“动态”。而称为“语言”,我认为是定义了一种新的描述方式,这个方式借助 Ruby 元编程的特性,让使用者感觉上面产生新的语言,但是还是优雅的 Ruby 风格编码。
不知道像 haml 这样的工具算不算 DSL?