Если вы выбираете язык, такой как 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
}
}
... и ваш основной графический интерфейс выглядит так:
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, например, есть код для создания меню, аналогичный тому, что я описал в Menus Made Easy .
Я думаю, однако, что через некоторое время вам действительно будет очень трудно создавать пользовательские интерфейсы профессионального уровня таким образом.