Konstantin Lvov - [entries|archive|friends|userinfo]
Konstantin Lvov

[ website | Почти Напрасный Труд ]
[ userinfo | ljr userinfo ]
[ archive | journal archive ]

[May. 26th, 2007|09:18 am]
Previous Entry Add to Memories Tell A Friend Next Entry
Мысли: Язык разметки для описания графического интерфейса.

В Java до сих пор графический интерфейс создается императивным методом - т.е. виртуальной машине даются команды типа "создать фрейм", "создать кнопку", "создать разметку". То же самое в Win32, где программист для создания графического интерфейса обращается к операционной системе с командами "Создать окно", "Создать кнопку ОК", и т.п. В то же время для описания графического интерфейса, всевозможных форм, элементов управления на них и пр. как нельзя лучше подходят языки разметки типа HTML или XML. Очень наглядно экранная форма описывается в HTML:

<form id="form1">
<button action="submit" value="OK">
</form>


Непонятно, почему до сих пор не образовался общий для индустрии язык разметки, использующийся для описания форм графического интерфейса. Вроде бы и идея очевидная, и написать компилятор с такого языка в язык общего назначения с соответствующей графической библиотекой - задача (насколько я представляю) не запредельно сложная, и для визуальных RAD-сред читать язык разметки и наглядно отображать формочку, описанную на нем, по идее проще, чем, скажем, парсить java-класс JFrame, и определять, какие инструкции в общей массе кода отвечают за размеры формы, ее цвет, разметку и т.п. Тем не менее, в основных языках (C++ и java) такого общепринятого инструмента вроде бы нету, (как описываются формы на C# - не помню). Что-то похожее было в Delphi, где графические формы описывались на своем языке (в принципе, это был язык разметки), и описания хранились в .dfm-файлах, отдельно от основной массы кода.

upd. Стал копать, и нашел проект User Interface Markup Language (http://uiml.org) - они хотят стандартизировать именно такой язык разметки, основанный на XML. Вроде есть даже его реализация для Java/Swing - jUIML. Интересно, много людей про него слышали/пользуются?..
LinkLeave a comment

Comments:
From:[info]phantom
Date:May 26th, 2007 - 08:16 am
(Link)
в c# такой язык называется xaml
From:[info]legi.livejournal.com
Date:May 26th, 2007 - 08:27 am
(Link)
вот только хотел написать :)
From:[info]do__
Date:May 26th, 2007 - 10:07 am
(Link)
А как же glade? Хоть и не унифицированный, но все же безусловно попытка. А джаве веры нету во всем том, что касается граф. Интерфейса.
From:(Anonymous)
Date:May 26th, 2007 - 03:48 pm
(Link)
Эт' еще почему? Что за хуйню вы спороли?
[User Picture]
From:[info]do_
Date:May 26th, 2007 - 03:51 pm
(Link)
...аноним хуже пидараса, да.
[User Picture]
From:[info]nikto
Date:May 27th, 2007 - 08:41 pm
(Link)
ну, вот я, например, про него не слышал раньше. Это, конечно, не показатель - я вообще с линуксами занимаюсь не очень давно и много про что не слышал, но все равно - MS и Sun не внедряют его в свои продукты, да и в юникс-community оно, похоже, тяготеет к Gnome. А есть еще KDE. То есть это, похоже действительно попытка сделать унифицированный язык, но именно попытка, а не индустриальный стандарт, такой, как, скажем, протокол HTTP. В общем, не знаю...
From:[info]qw.livejournal.com
Date:May 31st, 2007 - 07:17 am

xul

(Link)
то, на чем сделаны интерфейсы firefox


http://www.mozilla.org/projects/xul/

и

http://www.xulplanet.com/