Прыткая ящерица 02.03.2004 Константин Лепихов В мире чисел и логических выражений, где высшей формой жизни являются программы, тоже действуют законы животного мира - выживает не самый крупный и сильный, а самый приспособленный. Это в полной мере относится и к проекту Mozilla. Вместо одного большого проекта Mozilla SeaMonkey он теперь представляет собой несколько более мелких: Application Suite, отдельный браузер (Firefox), почтовый клиент (Thunderbird) и календарь/планировщик (Sunbird). Еще раньше был выделен движок для рендеринга страниц, названный Gecko, который может использоваться отдельно. Чтобы не утомлять читателя грудой цифр и красивых слов, скажу только, что это первый движок, реализующий de facto многие стандарты W3C. У него есть удобное API, позволяющее написать не только браузер для настольных платформ, но и приложение для встроенных систем (например, информационных терминалов, PDA и т. д.). Первые браузеры, основанные на движке 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. От земноводных — к пернатым - Браузер без отягощающих код излишеств. Именно поэтому для описания интерфейса был выбран язык XUL (кстати, Epiphany тоже его использует), родившийся в недрах SeaMonkey (подробнее о нем см. врезку).
Тупиковые ветви эволюции
- Возможность изменения поля 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), сделанные в рамках российского проекта по локализации этих продуктов. Вышеописанные возможности и дополнения (а также некоторые другие — в частности, поддержка различных стандартов W3C, "сайдбара", встроенных механизмов поиска, FTP-клиента и пр.) сведены в таблицу. Возможности Netscape Navigator и Mozilla Navigator из Mozilla Application Suite даны для сравнения.
|