如果您选择像 Tcl 或 Python 和 Tk 这样的语言来进行应用程序开发,那么编写自己的 DSL 来描述接口变得相当简单。例如,您可以编写一个 DSL 来创建这样的菜单:
menubar {
File => {
Open => cmd.open
Save => cmd.save
Exit => cmd.exit
}
Edit => {
Cut => cmd.cut
Copy => cmd.copy
Paste => cmd.paste
}
}
...和您的主要 GUI 形式如下:
form PropertiesForm {
Font: [fontchooser]
Foreground: [foregroundChooser]
Background: [backgroundChooser]
}
form NewUserForm {
username [_____________________]
[] administrator
enable the following features:
() feature 1
() feature 2
() feature 3
}
notebook {
Properties => PropertiesForm
New User => NewUserForm
}
... 等等。Tcl 真的很擅长让你编写这样的 DSL。请注意,Tcl 本身并未内置此功能,但该语言使 DSL 变得微不足道。Tcler 的 wiki 上存在一些这类东西,例如,有一些代码可以创建类似于我在Menus Made Easy中描述的菜单。
不过,我认为,一段时间后你会发现以这种方式制作专业级 UI 真的非常困难。