从配置文件到 DSL

DSL 是什么?一开始只是听说过,叫 Domain Specific Language,领域定制语言,也就是说,这种语言与特定领域相关的?于是我想起了什么 Cobol 之类的商业语言,也许对于一般的开发人员来说,它和我们没什么关系吧……不过,这个完全是一个误解,DSL 存在于各种领域,甚至, Web 开发、项目管理等。

而不知道从什么时候开始, Spring 项目的项目管理程序已经从 Maven 迁移到基于 Groovy 的 Gradle 了。初看上去, Maven 和 Gradle 并没有多大区别, Gradle 的依赖关系甚至完全照搬 Maven ,有一种多此一举的想法。而去年年初发布的 Android Studio ,也是采用 Gradle 进行项目管理。那么 Gradle 有什么优势?我觉得,从 Maven 上迁移,实际上是自定义工作的配置文件到 DSL 的转变。