Не шутить, но HTML.
Это является межплатформенным, и подводит итог gui-расположения в простом текстовом файле. Это определенно зрело, а также хорошо понятое и хорошо зарегистрированное.
существует набор путей к файлам шаблона HTML для динамического контента и других способов преобразовать пользовательские синтаксисы в HTML, если Вам не нравятся угловые скобки.
Клиентские сценарии w/JavaScript, сценарии серверной стороны с PHP/Ruby/Python/Perl.
Это не хорошо подходит во всех целях, но для многих, это достаточно хорошо. Нет никакой причины, что это должно быть подано любой - можно распределить файл HTML клиентам, если Вы хотите - видят TiddlyWiki для хорошего примера того, куда это может пойти.
То, что Вы описываете, за исключением обуви, новомодного понятия декларативного программирования. Я описал бы обувь больше как Язык Домена-Specifc GUI . Ну, я говорю новомодный: формы Visual Basic, если Вы смотрели позади разработчика IDE, были декларативны. Так, идущий далее назад все еще, был SQL*Forms Oracle, хотя сборка их с текстовым редактором была процессом только, чтобы быть быть предпринятой очень самый храбрый.
Для добавления другого к списку Microsoft имеет XAML, который, среди прочего, описывает графический интерфейсы пользователя, созданные для WPF.
, Хотя некоторые упомянутые схемы довольно просты, декларативно определенные графический интерфейсы пользователя могут быть столь сложными, как что-либо определенное в коде, они являются просто легче и более краткими: они говорят, "что" Вы хотите произойти и предоставить базовой платформе право обрабатывать "как".
TCL/TK является языком сценария, используемым для создания GUI в интерактивном режиме. Это доступно на различных платформах включая Unix, Windows и Mac OS X.
XUL (это довольно просто в использовании, и мощно - большая часть Firefox, реализован с помощью XUL для структуры GUI, + JavaScript для обработки логики)
, учебное руководство по XUL имеет некоторые хорошие примеры. Вот один для tabboxes. Тот внизу страницы имеет переключаемые вкладки, кнопки, окна редактирования и групповые блоки, и это довольно просто (никакая Javascript/CSS/XBL/key привязка/и т.д.). Они тогда добавляют прогрессивно [еще 114] материал позже, который является большой функциональностью для длины файла, который определяет его. (по крайней мере, пока Вы не начинаете добавлять JavaScript для обработки рассматриваемой логики), Если бы я должен был сделать что-то вроде этого в Win32, то это была бы реальная боль.
wxLua является оберткой wxWidgets библиотеки для Lua. Это использует метод Подключения для присоединения gui событий виджета к функциям (функции являются первым классом как в JS).
GTK-сервер чрезвычайно прост в использовании и может использоваться больше чем с 30 языков, включая Bash и Visual Basic.
Необходимо взглянуть на XAML, если Вы находитесь на платформе.NET
Пижама - http://pyjs.org - это набор виджетов рабочего стола, замаскированный под набор виджетов Web 2.0 на основе AJAX. это так сильно НЕ похоже на набор веб-виджетов, что я фактически перенес его на рабочий стол - http://pyjd.org - используя webkit (тот же движок в Adobe AIR, Google chrome, safari и т. д.)
это «привет мир»:
from pyjamas.ui.RootPanel import RootPanel from pyjamas.ui.Button import Button from pyjamas import Window def greet(fred): Window.alert("Hello, AJAX!") if __name__ == '__main__': b = Button("Click me", greet) RootPanel().add(b)
, который сразу же отвечает первым четырем из пяти требований. требование 5 выполняется следующим образом:
from pyjamas.ui.RootPanel import RootPanel from pyjamas.ui.HorizontalPanel import HorizontalPanel from pyjamas.ui.HTML import HTML p = HorizontalPanel() p.add(HTML("<b>Hello</b>")) p.add(HTML("World")) RootPanel().add(p)
проще не бывает.
SDL / Swing чрезвычайно лаконичен, удобочитаем, ненавязчив (283 КБ библиотеки без зависимостей) и прост в использовании. Пример:
menus {
"File" {
"Open" do="open" // calls "open()" in the controller
"---"
"Exit" do="exit"
}
}
Его открытый исходный код, но пользуется коммерческой поддержкой со стороны Ikayzo.com. В стадии разработки находятся порты для .NET и iOS.