25 октября 2014 года
Вы смотрите старую версию сайта, которая больше не обновляется.
Переходите на новую Computerra.ru:


Прыткая ящерица

В мире чисел и логических выражений, где высшей формой жизни являются программы, тоже действуют законы животного мира — выживает не самый крупный и сильный, а самый приспособленный. Это в полной мере относится и к проекту Mozilla.

Опубликовано в журнале "Компьютерра" №8 от 17 марта 2004 года
Автор: Константин Лепихов | Раздел: SOFTТЕРРА LITE

В мире чисел и логических выражений, где высшей формой жизни являются программы, тоже действуют законы животного мира - выживает не самый крупный и сильный, а самый приспособленный. Это в полной мере относится и к проекту Mozilla.

Вместо одного большого проекта Mozilla SeaMonkey он теперь представляет собой несколько более мелких: Application Suite, отдельный браузер (Firefox), почтовый клиент (Thunderbird) и календарь/планировщик (Sunbird). Еще раньше был выделен движок для рендеринга страниц, названный Gecko, который может использоваться отдельно.

Чтобы не утомлять читателя грудой цифр и красивых слов, скажу только, что это первый движок, реализующий de facto многие стандарты W3C. У него есть удобное API, позволяющее написать не только браузер для настольных платформ, но и приложение для встроенных систем (например, информационных терминалов, PDA и т. д.).

Расцвет земноводных

1

Первые браузеры, основанные на движке Gecko, - это SkipStone (www.muhri.net/skipstone, рис. 1) и Galeon (www.galeon.sf.net, рис. 2). Они отличались хорошей скоростью рендеринга страниц и низкими системными требованиями: Galeon’у вполне хватало P166/32MB, у SkipStone были сходные запросы, но работал он еще быстрее за счет отказа от интеграции со многими компонентами GNOME.

Еще одна особенность Galeon’а - поразительная функциональность: версии 1.2.x были самыми "навороченными" из всех основанных на Gecko браузеров. К сожалению, это не могло не сказаться на стабильности работы: "вылеты" во время его использования были далеко не редкостью. В версиях 1.3.x разработчики сделали поворот на 90 градусов: аскетизм и полная интеграция с GNOME 2.0. После чего Galeon для многих потерял звание лидера среди "земноводных" браузеров. Сейчас он больше похож на дополнение к Nautilus, а не отдельный продукт, к тому же на пятки ему наступает Epiphany, другой браузер на движке Gecko для GNOME.

От земноводных — к пернатым

Проект Mozilla Firefox, ранее известный как Firebird, а еще раньше как Phoenix, преследовал две цели:

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

4Непосредственно в Gecko был сделан ряд улучшений, направленных на повышение скорости рендеринга страниц. На сегодняшний день Firefox - самый быстрый браузер на этом движке и, как мне кажется, наиболее динамично развивающийся (текущая версия 0.7, скоро должна выйти 0.8). Но не стоит думать, что это еще один браузер для "минималистов": его функциональность может быть легко расширена за счет дополнений - add-on’ов, таких как User-Agent Switcher, который позволяет "подменять" тип браузера при просмотре страниц. То же самое относится и к поддержке "мышиных жестов", менеджера загрузок. Существует даже дополнение под названием URLFix, позволяющее автоматически изменять набор знаков при вводе URL не в той кодировке. Внешний вид Firefox тоже может быть изменен - через скачивание и установку "тем", позволяющих подогнать под себя цветовое оформление и элементы интерфейса.

Тупиковые ветви эволюции

5Теперь остановимся на других продуктах, несущих внутри себя "прыткую ящерицу". Это Beonex Communicator и Netscape/AOL Communicator. Первый - браузер (а также почтовый клиент и IRC-клиент), основанный на коде Mozilla 1.0.2, в котором сделан упор на безопасность: повышены требования к сохранению конфиденциальности пользователя, есть возможность изменения строки User-Agent. В почтовом клиенте можно отфильтровывать спам и обрабатывать содержимое писем. Скорость открытия страниц у него невысокая.

6AOL Communicator (бывший Netscape Communicator) тоже базируется на стабильном коде проекта Mozilla, но подробно рассматривать его мы не будем, поскольку перспективы этого браузера печальны. По условиям договора с Microsoft, AOL будет использовать Internet Explorer, следовательно, дни Communicator’а сочтены. Хотя само имя Netscape все еще останется за AOL в качестве брэнда для дешевых Интернет-услуг.

Кто сильнее?

Все рассмотренные браузеры имеют ряд особенностей.

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

- Поддержка табов (вложенных окон). Возможность открытия нескольких страниц в одном окне (впервые появившаяся в браузере NetCaptor) стала поистине революционной в технологиях разработки GUI для программ просмотра веб-страниц. На сегодняшний день все браузеры на движке Gecko поддерживают табы. Лучше всех это делают Galeon и Firefox, позволяющие перегруппировывать табы простым движением мыши. А хуже всего это реализовано в SkipStone, где нужно переключатся между "оконным" и "вложенным" режимами отображения. Некоторые приверженцы Opera могут возразить, что там тоже есть вложенные окна, но мне кажется, что разработчики этого браузера сделали самую неудачную реализацию "вложенного" отображения: страницы интерпретируются как подокна в рамках одного окна, их можно расположить каскадом или по вертикали - то есть пользователю не облегчают жизнь, а предлагают воевать с интерфейсом, как во времена Windows 3.1.

- "Мышиные жесты" (mouse gestures). Возможно, самое полезное добавление. Теперь управлять браузером можно с помощью мыши, что существенно увеличивает производительность труда. Пожелав, например, вернуться на одну или несколько страниц назад, вы нажимаете кнопку мыши и перемещаете курсор влево; если хотите пойти вперед - перемещаете курсор вправо и т. д. Впервые эта возможность появилась в Opera; в Gecko-браузерах "жесты" поддерживаются с помощью дополнения Optimoz (www.optimoz.mozdev.org).

- Возможность блокировки всплывающих окон.

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

- Средства для надежного хранения личных данных. Как только вы заходите на страницу, где нужно ввести пароль, браузер заполнит поле за вас. То же самое относится и к другим данным (например, тем, которые нужно ввести в анкету). Для пущей безопасности эти данные шифруются.

- Переносимость настроек. Ситуация, наверняка знакомая многим: вы сменили браузер или переустановили компьютер, и все ваши закладки и настройки пропали, приходится опять их собирать или импортировать. Для решения этой проблемы Galeon, например, перешел на XML Bookmark Exchange Language (XBEL), позволяющий сохранять закладки на диск. Теоретически все совместимые с XBEL браузеры могут пользоватся одним общим файлом закладок, но на практике в каждом из браузеров - своя интерпретация XBEL. Поэтому интереснее и переспективнее идеи другого проекта - ZillaVilla (zillavilla.com), прелагающего пользователям Mozilla хранить все настройки на удаленном сервере, благодаря чему своими закладками и профилями можно воспользоваться откуда угодно. Этот проект интенсивно развивается: сейчас есть возможность сохранять настройки не только Mozilla Browser, но и ChatZilla (IRC-клиент) и Mozilla Mail.

- Локализация. Во всех рассматриваемых браузерах возможность локализации предусмотрена "с рождения", правда разными способами. В Galeon, SkipStone и Epiphany - с помощью пакета gettext, который обеспечивает более стандартизованный подход к разработке (к сожалению, такой метод годится только для POSIX-совместимых систем, к которым не относятся Mac OS и Windows). Для Firefox был взят "мозилловский" подход - через так называемые language pack, "языковые пакеты", позволяющие абстрагироваться от языковых реалий каждой из операционных систем. Все языковые настройки и переводы хранятся в отдельном файле и могут редактироваться отдельно от основного кода, причем даже людьми, далекими от программирования. Отмечу, что самая хорошая локализация - в продуктах Mozilla.org: есть актуальные переводы интерфейса Firefox, Thunderbird и Mozilla (Navigator, Messenger), сделанные в рамках российского проекта по локализации этих продуктов.

Сравнительная таблица браузеров на движке Gecko.

Вышеописанные возможности и дополнения (а также некоторые другие — в частности, поддержка различных стандартов W3C, "сайдбара", встроенных механизмов поиска, FTP-клиента и пр.) сведены в таблицу. Возможности Netscape Navigator и Mozilla Navigator из Mozilla Application Suite даны для сравнения.

В обзор не вошли некоторые браузеры на базе Gecko: это Salamander, Camino и, может быть, еще какие-то, о которых я не знаю. Salamander по функциональности похож на ранние версии Galeon, а Camino15 - браузер для Mac OS X, призванный быть лучше, чем Safari (по безопасности и средствам фильтрации). Но даже без них видно, какой огромный виток в развитии произошел со времен Mosaic или Netscape Navigator. У рынка проприетарных браузеров есть достойная альтернатива - рынок свободного ПО, где существуют программы с более широкой функциональностью, с более активной поддержкой, да и разработчики там чаще прислушиваются к мнению конечного пользователя.

Еще одно порождение «Морской Обезьяны», которое связано с Gecko, - язык XUL (произносится как "зул"). Суть его в том, что пользовательский интерфейс представляет собой документ, устройство и технология разработки которого максимально приближены к разработке обычных веб-документов (XML/HTML+JS+CSS). При этом интерфейс отрисовывается самим движком браузера, а не с помощью системных библиотек операционной системы. Кроме того, XUL был первым декларативным языком описания GUI на основе XML. Какие плюсы получит разработчик, если воспользуется XUL? Во-первых, гибкость и "легкость" интерфейса (веб-страницы удобнее редактировать, чем программы). Во-вторых, малые ресурсы для отрисовки. Ну и в-третьих, возможность быстро создавать межплатформные GUI, так как интерфейс пишется только один раз.

/  iBusiness