另外一种DSL尝试:UML脚本
yUML提供了一种脚本工具,类似英语的表达方式,可以让不懂计算机和UML的业务专家使用普通英语来表达他们的专家知识。
这也是DSL的一种尝试,目前,DSL尝试有三种主要趋势:
1.使用新的Scala之类语言
2.基于Java的框架如Qi4j
3.基于UML的脚本。
比如英语:A Customer is a User
通过rebol工具可以转换为如下yUML.me脚本
yUML.me:[User]^[Customer]
这样,就输出UML图:
你可以在他们提供的在线绘制UML 输入yUML.me
脚本试验一下。
同样:一个客户有两个地址聚合关系如下表达:
[note: A Customer has 1-2 Address]
[Customer]++1-2[Address]
表达依赖关系,如下:
[note: An Order uses 1 PaymentMethod]
[Order]0..*->1[PaymentMethod]
表达继承关系,如下:
[note: PaymentMethod can be]
[PaymentMethod]^[Credit]
[PaymentMethod]^[Cash]
[PaymentMethod]^[Check]
rebol工具是一个强大的DSL生成工具,可以产生Java C或PHP代码,目前免费下载,我用它按照http://reboltutorial.com/blog/create-rebol-gui/说明输入脚本后,是确实产生一个窗口,感觉它的脚本很类似JavaFX,但是没有JVM那么臃肿支撑,整个大小只有634K。
这些都是成熟的理念和工具了,据说微软和Javafx的都是向rebol学的。