Наткнулся на любопытную вещь обзор языки описания интерфейсов на сайте www.raleigh.ru .
Обзор, правда, не первой свежести, но по-прежнему вполне актуален.
1. Пользовательские интерфейсы и Интернет. Что такое пользовательский интерфейс? Логично, что это то, с чем мы сталкиваемся каждый день в повседневной жизни: столовые приборы, дверные ручки, пульты от телевизора и т. д. Так уж сложилось, что в мире информационных технологий пользовательский интерфейс в первую очередь ассоциируется с графическим интерфейсом операционной системы.
Это неудивительно, ведь сегодня управление компьютерными программами нам так же знакомо, как тумблеры бытовых электроприборов.
Пользовательские интерфейсы являются неотъемлемой частью любого веб-приложения.
Любой сайт, к которому мы можем получить доступ через Интернет, представляет собой пользовательский интерфейс для доступа к информации.
Однако в настоящее время задача программирования пользовательских интерфейсов для Интернета несколько иная, чем в случае с настольными программами.
Современная операционная система основана на установленном стандарте пользовательского интерфейса для всех программ, которые с ней взаимодействуют. Соответственно, существует определенная модель, регламентирующая любые интерфейсные решения в программах для данной операционной системы.
А раз так, то создание пользовательского интерфейса сводится к использованию функций стандартных библиотек.
Например, это могут быть функции Win32 API или объекты MFC для программ MS Windows. У этого подхода есть одно замечательное свойство.
Если пользователь научился пользоваться хотя бы одной программой, он быстро привыкнет к любой другой для той же операционной системы.
Но такое положение дел нельзя отнести к веб-приложениям.
Каждый новый сайт – это новый информационный и графический дизайн, а также новый пользовательский интерфейс.
В этом случае библиотеки программного обеспечения для какого-либо конкретного стандарта пользовательского интерфейса вряд ли применимы.
И до сих пор чаще всего при разработке веб-сайтов используется «ручное» программирование, подразумевающее внесистемную задачу проектирования и реакции программы на каждый элемент пользовательского интерфейса и на каждое его состояние.
В случае большого полнофункционального решения такой подход означает «начало конца».
Но давайте обратимся к существующим и будущим стандартам в области описания пользовательских интерфейсов.
2. Язык пользовательского интерфейса UIML. В 90-е годы HTML приобрел огромную популярность, в первую очередь благодаря своей простоте.
Для того, чтобы создать небольшой сайт, не требовалось никаких специальных навыков программирования или специальных инструментов.
Это мог сделать каждый, и почти каждый попробовал.
Однако предок HTML, язык SGML, подразумевал структурирование документов, а это гораздо более глубокая модель, чем просто проектирование внешнего вида данных.
Исходная идея упорядоченной структуры распределенных данных вернулась с XML и породила эпоху метаописания абстрактных компонентов веб-ресурсов.
На этом фоне четко обозначилась задача удаления UI-разметки из кода прикладной программы.
Кроме того, появилась технология каскадных таблиц стилей (CSS), которая открыла путь к созданию дизайнов интерфейсов, адаптированных под конкретное устройство.
Эти обстоятельства стали предпосылками для создания UIML (языка разметки пользовательского интерфейса).
Первая спецификация UIML была представлена компанией Harmonia в январе 1998 года.
Спецификация 3.0 теперь доступна на веб-сайте проекта.
Что такое УИМЛ? В общих чертах, это концепция, в которой путь данных от приложения к физическому устройству отображения проходит через абстрактные области логики, интерфейса и представления.
Область интерфейса включает в себя описание структуры, стилей, содержания и поведения элементов.
Цель UIML — эффективная реализация области интерфейса.
Если вы посмотрите глубже, вы обнаружите, что UIML определяет следующее:
- компоненты пользовательского интерфейса;
- как будут представлены элементы пользовательского интерфейса (визуально/вербально/тактильно);
- какой контент будет использоваться в пользовательском интерфейсе (текст, изображения, звуки и т. д.);
- какова будет реакция элементов пользовательского интерфейса на действия пользователя;
- как будут контролироваться события пользовательского интерфейса (классы Java Swing или теги HTML);
- с каким внешним API будет взаимодействовать пользовательский интерфейс.
Однако в отличие от других языков, рассмотренных в этом обзоре, UIML не поддерживается ни одним браузером.
Чтобы выполнить преобразование UIML, вам следует использовать один из сторонних процессоров UIML на стороне сервера.
Однако по адресу www.uiml.org/tools/index.htm представляет впечатляющий список процессоров UIML с открытым исходным кодом.
3. «Данных больше нет, есть только XUL».
В настоящее время очень популярен язык XUL (XML User-interface Language) для описания пользовательских интерфейсов.
XUL является частью среды разработки кросс-платформенных интерфейсов, известной как XPFE. Это полнофункциональный язык разметки для объектов приложения, таких как окна, метки и кнопки.
Язык соответствует стандарту W3C XML 1.0. Приложения, написанные на XUL, также могут использовать HTML, CSS, DOM, Java-скрипты.
И самое главное, XUL пытается разделить представление данных и логику приложения.
Это делается с помощью следующих абстрактных слоев:
- Содержание: объявление окон и связанных с ними элементов пользовательского интерфейса.
- Оболочка: включает CSS и изображения, определяющие внешний вид приложения.
- Локализация: текст, отображаемый в приложении, распространяется в специальных локальных файлах, что обеспечивает переносимость языка.
Однако первое яркое впечатление от технологии сразу омрачается ее жесткой привязкой к ядру Mozilla (Gecko).
Кстати, с названием технологии связан один любопытный казус.
Так получилось, что аббревиатура XUL произошла от имени персонажа Зуула из фильма «Охотники за привидениями».
Ключевой фразой оказалась из фильма «Даны больше нет, есть только Зуул», которая трансформировалась в слоган «Данных больше нет, есть только XUL».
Возможно, именно поэтому сообщество XUL так усердно следит за тем, чтобы название языка произносилось правильно.
4. «XAML — это язык Авалона».
Было бы странно, если бы Microsoft проигнорировала столь перспективную рыночную нишу.
В настоящее время в активной разработке находится XAML (eXtemsible Application Markup Language) — язык интерфейса платформы Windows Longhorn. Модель приложения Longhorn включает объект Application. Его набор свойств, методов и событий позволяет объединять веб-документы в единое приложение.
Объект «Приложение» контролирует выполнение программы и генерирует события для пользовательского кода.
Документы приложения написаны на языке XAML. Однако XAML используется в первую очередь для описания пользовательского интерфейса.
Логика приложения по-прежнему управляется процедурным кодом (C#, VB и т. д.).
XAML можно использовать как для браузерных приложений, так и для локальных настольных приложений.
XAML включает четыре основные категории элементов: панели, элементы управления, элементы, связанные с документами, и графические фигуры.
Объявлены 7 классов панелей, задающих принципы отображения вложенных в них элементов.
Для установки положения элементов относительно границ родительской панели используются атрибуты наподобие свойств в объектно-ориентированных языках.
Этот синтаксис не очень хорошо соответствует рекомендациям CSS, но будет знаком программистам настольных приложений.
Приложения, объявленные в XAML, могут содержать несколько страниц.
Элемент управления PageViewer позволяет разбивать содержимое на страницы и обеспечивать навигацию по ним.
Элемент ContextMenu помогает создавать меню навигации приложения.
Код процедурного языка можно поместить непосредственно в файл XAML или назначить при построении проекта.
В настоящее время не существует стабильной версии Longhorn, но в ноябре 2004 года Microsoft выпустила Avalon CTP, которая позволяет использовать XAML на платформах Windows XP и Windows Server 2003. Последнюю версию этого пакета можно найти по этому адресу: www.microsoft.com/downloads/details.aspxЭfamilyid=C8F904E1-B4CA-402B-ACCF-AAA2BD60DA74&displaylang=en 5. Богатый язык веб-приложений MXML. Macromedia традиционно выделяется на рынке поставщиков веб-технологий нетипичным подходом.
Так, скажем, ныне повсеместно используемый Flash настолько разительно отличается от других технологий доставки информации, что было бы как-то неловко даже рассматривать его параллельно с теми же языками разметки.
Однако в эпоху XML и Macromedia он не остался в стороне от моды на декларативные языки.
Ответом компании стала технология Flex, которая содержит основанный на XML язык MXML (язык разметки Macromedia Flex).
Подобно рабочей группе Mozilla и Microsoft, разработчики Flex стремились создать язык, который эффективно объединил бы две популярные парадигмы: язык разметки и объектно-ориентированный язык программирования.
MXML позволяет четко описать структуру пользовательского интерфейса, согласно которой он будет воссоздан клиентским приложением.
ActionScript выполняет задачи контроллера (программно реагируя на события в среде) и обеспечивает уровень модели приложения.
Flex, помимо стандартных элементов форм ввода данных, содержит такие актуальные компоненты пользовательского интерфейса, как компонент Tree (структурирование данных), компонент DataGrid (управление большими объемами данных), различные компоненты навигации (TabNavigator, ViewStack, Accordion и др.
).
Как вы помните, одним из фундаментальных свойств XML является возможность назначать свои собственные теги.
Flex эффективно наследует эту идею.
Мы можем создать приложение, поместить его в отдельный файл MyInnerApp.mxml, а затем Тег будет доступен в приложениях Flex по ссылке на исходный код. Flex имеет инструменты для интеграции приложений.
Мы можем использовать протокол SOAP и отправлять инструкции приложения Flex удаленному сервису, а затем получать от него данные.
Это позволяет использовать сервис-ориентированную архитектуру (SOA) при разработке приложений FLEX. Специфика интерфейсов от Macromedia — их интерактивность и мультимедийность.
Очевидно, что элементам приложения Flex доступна богатая библиотека специальных эффектов (библиотека событий).
Следует отметить, что документация по технологии Flex выполнена в лучших традициях Macromedia. Особенно впечатляет интерактивный технологический тур.
www.macromedia.com/software/flex/productinfo/brz_overview .
На стороне клиента приложения Flex устанавливаются в браузерах с расширением Flash Player 7. Это обеспечивает приложениям Flex самую широкую поддержку на клиентских устройствах.
С другой стороны, необходимую серверную поддержку обеспечивает компонент Flex Presentation Server, установленный на сервере приложений J2EE (Macromedia JRun, IBM Websphere, BEA WebLogic, Apache Tomcat и др.
).
Это тот самый механизм, который создает новое поколение многофункциональных приложений (RIA — Rich Internet Applications).
Стартовая цена Flex Presentation Server составляет 12 000 долларов США.
6. Оперная вечеринка веб-приложений.
Если бы разработчики браузеров полностью придерживались тех же стандартов, это значительно облегчило бы жизнь веб-разработчикам.
Написав приложения для одного из браузеров, можно было не беспокоиться о том, как оно будет вести себя по-другому в другом.
Казалось бы, все основные игроки этого рынка заявили о поддержке стандартов W3C, однако не секрет, что один и тот же HTML-код может по-разному транслироваться браузерами IE, Netscape и Opera, а CSS не всегда воспринимается ими одинаково.
А про JavaScript и DOM, я думаю, вообще не стоит упоминать.
Разработчики браузеров, стремясь привлечь больше внимания к своим продуктам, технологически опережают независимые организации по стандартизации.
В результате на рынке появляется множество сопоставимых, но разных технологий, что, помимо прочего, создает жесткую конкуренцию.
Когда группа Mozilla марширует по миру под знаменем XUL, Microsoft провозглашает эпоху Longhorn/XAML, Opera Software просто вынуждена пойти на какой-то ответный шаг.
По крайней мере, так я вижу работу компании над спецификацией Web Applications 1.0 ( http://www.whatwg.org/specs/web-apps/current-work/ ).
Данная спецификация не содержит каких-либо революционных новшеств, но очерчивает множество актуальных (по крайней мере для браузера Opera) задач:
- управление всплывающими меню и контекстными меню;
- обслуживание событий сервера в приложении без перегрузки страницы.
Удаленный вызов процедур на стороне сервера и манипулирование фрагментами XML-документа;
- обслуживание аппаратно-независимых событий DOM;
- формы пользовательского интерфейса для отображения динамических деревьев и списков;
- предустановленный HTML-редактор;
- API для перетаскивания;
- API для управления выделением контента;
- API буфера обмена;
Ее издание от 1 марта 2005 года буквально пестрит красными пометками «может быть, так и будет, а может быть и иначе…».
Завершение его разработки, скорее всего, обогатит браузер Opera новыми возможностями, но вряд ли это будет заметно на фоне более значимых нововведений от конкурентов.
7. Результаты.
Общая картина выглядит следующим образом.
Microsoft сосредоточила свои усилия на стирании границы между браузерными и настольными приложениями.
Для этого создается платформа Longhorn, включающая в себя язык разметки интерфейса XAML. Longhorn построен на системном уровне CLR, чтобы обеспечить переносимость приложений между устройствами.
При этом рабочая группа Mozilla не посягает на стереотипы веб-разработчиков, но, тем не менее, предоставила инструмент XUL, позволяющий писать веб-приложения, близкие по функциональности к десктопным.
Очевидным преимуществом сообщества Mozilla на данный момент является наличие ряда уже реализованных приложений, представленных на сайте.
Вдали от битвы между сообществом открытого исходного кода и империей программного обеспечения Microsoft, Macromedia успешно продвигает технологию Flex. Решения Macromedia традиционно отличаются впечатляющим мультимедиа, и Flex не является исключением из этого правила.
Популярность Flash в презентационных проектах трудно переоценить, а технологический дуэт MXML и ActionScript 2 открывает Macromedia нишу полнофункциональных бизнес-порталов.
Однако эффект от качественных Flex-приложений все же требует дополнительных трудозатрат, поэтому смею предположить, что эта технология не станет основным инструментом большинства веб-разработчиков.
Но спустимся на грешную землю.
Типичное техническое задание веб-проекта включает требования по поддержке наиболее популярных браузеров.
Те.
Технологии XAML и XUL автоматически исключаются.
Вы можете выбрать Flex, поскольку плагин Flash Player легко интегрируется в различные браузеры.
Однако стоимость Flex Presentation Server ставит под вопрос рентабельность для большинства компаний, занимающихся веб-разработкой.
Кроме того, каждое из заявленных решений предполагает наличие языка разметки пользовательского интерфейса.
Однако в каждом случае это скорее язык браузера/платформы, чем концепция описания интерфейса.
Именно поэтому я включил в обзор язык UIML, который не привязан к какой-либо платформе, но четко разделяет абстрактные приложения.
Таким образом, UIML определяет структуру интерфейса, его дизайн, содержание и поведение.
Это модель описания интерфейсов, которая просто наиболее интуитивно понятна.
А поскольку UIML аполитичен на мировом ИТ-рынке, его с одинаковой легкостью можно использовать для перевода кода в любые браузеры и на любые устройства.
UIML не разрушает обычный рабочий процесс веб-разработки, а дополняет его.
Разработчик может продолжать полагаться на ранее выбранные технологии HTML, XHTML, CSS, XSL, WML и т. д. Что касается доступности, все, что мы можем сделать, это выбрать один из UIML-процессоров с открытым исходным кодом на свой вкус и установить его на свой сервер.
Оригинальная статья с примерами, иллюстрациями и ссылками - www.raleigh.ru/a/pub/2005/ui-langs.html .
ПС.
Я хотел бы добавить, что веб-приложения теперь более известны под названием HTML 5 .
И в ЧТОРГ , помимо Оперы, состоять также Mozilla и Apple. Соответственно, можно надеяться на поддержку HTML 5 как минимум в трёх браузерах — Firefox, Opera и Safari. Теги: #UIML #xul #XAML #MXML #веб-приложения #html5 #HTML 5 #flex #Flex #ui #разработка веб-сайтов
-
Вивальди-5.0 - Искусство, Доступное Каждому
19 Oct, 24 -
Zfs В Linux: Почти Хорошо
19 Oct, 24 -
Почему Инженеры Не Любят Twitter
19 Oct, 24 -
Таблица Дроидов. Выпуск 5
19 Oct, 24