XUL

Расширение |  `.xul`
MIME-тип |  application/
vnd.mozilla.xul+xml
Разработчик |  Mozilla Foundation
Тип формата |  язык разметки
Расширен из |  XML
Сайт |  developer.mozilla.org/… (англ.)
XUL

Класс языка |  Декларативный (язык разметки)
Появился в |  около 1999[1]
Разработчик |  Mozilla Foundation
Расширение файлов |  `.xul`
Основные реализации |  Mozilla
Испытал влияние |  HTML и XML
Лицензия |  MPL
Сайт |  developer.mozilla.org/ru…
Платформа |  Gecko
ОС |  Cross-platform
Окно настройки Mozilla Firefox 1.5 сделано с использованием XUL (заголовок — от менеджера окон)

XUL (произносится «зул»[2], XML User Interface Language) — язык разметки для создания динамических пользовательских интерфейсов на основе XML. XUL разрабатывается в рамках проекта Mozilla и является частью платформы XULRunner.

XUL разработан для создания интерфейсов в таких программах как браузеры, почтовые клиенты и т. д. Однако, XUL можно достаточно эффективно использовать для создания любых приложений, активно взаимодействующих с веб-ресурсами.

Тем не менее, XUL изначально предназначался для работы с Gecko в составе продуктов Mozilla, и его составляющие полностью контролировались процессом их разработки. Это позволяло Mozilla Foundation легко добавлять нужные им функции в ущерб стандартности (например, использования какого-нибудь другого языка).

Как и в случае с HTML, XUL позволяет описывать интерфейсы посредством использования языка разметки, задавать внешний вид приложения, используя CSS, и определять поведение приложения, используя JavaScript. Но, в отличие от HTML, используя XUL, можно создавать динамику в пользовательском интерфейсе намного быстрее и удобнее. Например, выпадающее меню можно реализовать с помощью нескольких предназначенных для этого тегов, не требующих громоздкой конструкции на JavaScript и/или CSS, как это потребовалось бы в HTML.

XUL активно использовался для написания расширений для браузера Mozilla Firefox и почтового клиента Mozilla Thunderbird. Большая часть интерфейса этих двух программ написана на XUL. В августе 2015 года Mozilla объявила использование XUL для создания расширений Firefox устаревшей технологией, от которой планируется отказаться в пользу WebExtensions.[3] В форке Firefox Pale Moon сохранена поддержка XUL.[4]

## Содержание

* 1 Пример
* 2 Приложения с интерфейсом на XUL
* 3 Прекращение развития
* 4 См. также
* 5 Примечания
* 6 Ссылки

## Пример

[править | править код]

Следующий пример демонстрирует 3 кнопки, размещённые одна над другой в вертикальном («vbox») контейнере:[5]

<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>

<window id="vbox example" title="Example 3...."
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<vbox>
<button id="yes" label="Yes"/>
<button id="no" label="No"/>
<button id="maybe" label="Maybe"/>
</vbox>
</window>

## Приложения с интерфейсом на XUL

[править | править код]

* Firefox, Thunderbird, Sunbird и другие проекты Mozilla
* Songbird
* Miro
* Komodo IDE, Komodo Edit
* Spicebird
* Instantbird
* XULPlayer
* Cyclone3
* SeaMonkey
* Zotero

## Прекращение развития

[править | править код]

В 2016 году Mozilla объявила о том, что Firefox 57 будет целиком переведён на WebExtensions, а функции XUL будут вырезаны. В связи с этим на официальном сайте дополнений был прекращён приём новых дополнений с использованием XUL, а в октябре 2017 года было заявлено, что XUL-дополнения будут доступны на официальном сайте дополнений до июня 2018 года.

В связи с этим разработчиками облегчённого браузера Pale Moon был начат проект Unifed XUL Platform (Codename: Möbius)[6]. 17 ноября 2017 года была выпущена первая версия экспериментального браузера Basilisk[7], основанного на этом движке[8].

С марта 2023 XUL удалён из кодовой базы Firefox[9].

## См. также

[править | править код]

* Mozilla application framework
* XULRunner
* Список языков описания пользовательских интерфейсов
* HTML Application
* AJAX

## Примечания

[править | править код]

1. ↑ https://web.archive.org/web/19990503151844/http://www.mozilla.org/xpfe/languageSpec.html — Mozilla.
2. ↑ Cedric Savarese. XUL-Enhanced Web Apps (англ.). O’Reilly Media (6 февраля 2007). Дата обращения: 5 апреля 2010. Архивировано 27 августа 2011 года.
3. ↑ Kev Needham. The Future of Developing Firefox Add-ons (неопр.). blog.mozilla.org (21 августа 2015). Дата обращения: 7 сентября 2015. Архивировано 5 сентября 2015 года.
4. ↑ Pale Moon future roadmap (неопр.). Pale Moon (9 мая 2016). Дата обращения: 8 июня 2016. Архивировано 1 апреля 2021 года.
5. ↑ The Box Model (неопр.). Дата обращения: 27 ноября 2016. Архивировано из оригинала 9 декабря 2017 года.
6. ↑ Проект UXP - Unified XUL Platform на сайте GitHub
7. ↑ Moonchild. Basilisk web browser (неопр.). www.basilisk-browser.org. Дата обращения: 26 ноября 2017. Архивировано 21 июля 2017 года.
8. ↑ First Basilisk version released! - Pale Moon forum (англ.). forum.palemoon.org. Дата обращения: 26 ноября 2017. Архивировано 1 декабря 2017 года.
9. ↑ XUL Layout is gone | Words (неопр.). Дата обращения: 2 апреля 2023. Архивировано 2 апреля 2023 года.

## Ссылки

[править | править код]

* XUL.ru — новости, ссылки, самоучитель XUL на русском языке
* Mozilla XUL (англ.) — официальный сайт документации «Mozilla XUL documentation»
* XUL_Reference (англ.) — документации по XUL для разработчиков
* Xul Runner (англ.) — запуск XUL-приложений отдельно от браузера Mozilla
* Xul (англ.) and Xul Dev project (англ.)
* O`Reilly. «Creating Applications with Mozilla» (англ.) — Глава 2: Начало работы

Проекты Mozilla

Браузеры|

* Firefox
* 2
* 3
* 3.5
* 3.6
* 4
* история версий
* Mobile
* SeaMonkey

Другие проекты|

* Firefox OS
* Bugzilla
* ChatZilla
* Lightning
* Rust
* Sync
* Thunderbird
* Common Voice
* Mozilla Location Service

Не развиваются|

* Camino
* Sunbird
* Calendar Project
* Minimo
* Mozilla Application Suite
* Nvu
* Prism
* Penelope
* Persona

Инфраструктура|

* Gecko
* Necko
* XBL
* XPCOM
* XPConnect
* XPInstall
* XUL
* XULRunner
* Servo

Компоненты|

* Composer
* NSPR
* Rhino
* SpiderMonkey
* Tamarin
* Venkman

Инструментарии (наборы) элементов графического интерфейса

Низко-
уровневые|

* Xlib
* Macintosh Toolbox/Carbon
* Windows API
* Intrinsics
* Intuition

Высоко-
уровневые|

| Amiga OS|

* BOOPSI
* Magic User Interface
* Zune
* ReAction GUI

|

Mac OS и
macOS|

* Cocoa
* MacApp
* MacZoop
* PowerPlant

Windows|

* Microsoft Foundation Classes
* Windows Template Library
* SmartWin++
* Object Windows Library
* Visual Component Library
* Windows Forms
* Windows Presentation Foundation

UNIX, под X|

* Xaw
* Motif
* LessTif
* InterViews

Кросс-
платфор-
менные|

| На основе Flash|

* ASWing
* Adobe Flex
* Gnash
* SWF2EXE Software

|

На основе XML,
AJAX или SVG|

* Ample SDK
* CougarXML
* Dojo Toolkit
* Echo
* ExtJS
* GladeXML
* Google Web Toolkit
* jQuery
* Lively Kernel
* MooTools
* Pyjamas
* qooxdoo
* Rialto Toolkit
* script.aculo.us
* XML User Interface
* XUL
* Yahoo! UI Library

На основе Java|

* Abstract Window Toolkit
* Swing
* Standard Widget Toolkit
* Qt Jambi
* JavaFX

На основе
C или C++|

* Agar
* CEGUI
* Component Library for Cross Platform
* dlib C++ Library
* FLTK
* FOX toolkit
* OpenGL User Interface Library
* GTK+
* IUP
* Juce
* JX Application Framework
* Qt
* TnFOX
* Visual Component Framework
* wxWidgets
* YAAF
* XForms
* XVT
* Ultimate++
* Tk

На основе Common Lisp|

* CAPI
* Common Graphics
* CLIM
* McCLIM
* Garnet

На основе Pascal|

* IP Pascal
* Lazarus
* fpGUI
* FireMonkey

На основе Python|

* Pyjamas
* PyQt
* PyGTK
* PyGUI
* wxPython
* PySide
* Tkinter

На основе Objective C|

* GNUstep

Это заготовка статьи о компьютерных языках. Помогите Википедии, дополнив её.

|