Опубликован: 10.12.2007 | Доступ: свободный | Студентов: 822 / 20 | Оценка: 5.00 / 5.00 | Длительность: 58:33:00
Лекция 1:

Основные концепции

Лекция 1: 12345678910 || Лекция 2 >

1.1. Название продуктов Mozilla

Слово Mozilla первоначально было только названием проекта. Оно было предложено в 90-х годах Джеми Завински, сотрудником компании Netscape Communications. Это же слово обозначало и талисман проекта - зеленую рептилию. Появилось оно как сокращение от Mosaic Killer ("убийца Mosaic") и отражало дух соперничества при разработке ПО. Браузер Mosaic был предшественником браузера Netscape 1.0.

Но с тех пор слово Mozilla стало использоваться гораздо чаще, оно одновременно означало и проект, и конечный продукт, и платформу, а организация, занимающаяся разработкой и продвижением Mozilla, стала называться mozilla.org. Сейчас Mozilla - общее название для группы технологий вроде .Net и Java. Для именования продуктов и технологий внутри этой группы используются собственные названия. Официальный сайт Mozilla, который иногда так и называется, mozilla.org, можно найти по адресу http://www.mozilla.org

Mozilla впервые стала публичным проектом в 1998 г., когда были открыты исходные коды от пакета приложений для работы в Internet Netscape Communicator 5.0. Традиция проектов с открытыми исходными кодами подразумевает публичную проверку кода, значительный вклад разработчиков-энтузиастов и свободное использование. С течением времени Mozilla стала универсальным названием для всего, что связано с проектом 5.0. Прошло еще некоторое время, и в июне 2002 г. было объявлено о готовности Mozilla 1.0 к выпуску. Проект был переименован в Mozilla 1.0. Цифру 5.0 по-прежнему можно найти в строке идентификатора браузера (введите в строку адреса about:mozilla).

Теперь версии 6.0, 6.5, 7.0 и старше относятся к собственным продуктам Netscape, например, Netscape Navigator. Версии 1.0, 1.1, 1.2 и далее - версии платформы Mozilla, а также пакетов приложений для работы в Internet, создаваемым mozilla.org, потомков Netscape Communicator.

В этом курсе термины Mozilla и платформа Mozilla обозначают одну вещь - платформу. Любое приложение, основанное на Mozilla (например, почтовый клиент), использует копию платформы Mozilla и зависит от нее. Сама платформа состоит из исполняемой программы, нескольких библиотек и служебных файлов. Если исполняемый файл платформы запущен просто так, без указания начать работу какого-либо приложения, ничего не произойдет.

Разделение между платформой Mozilla и приложениями mozilla.org со временем становится более очевидным. То, что раньше было большим пакетом приложений, теперь стало целой платформой, поверх которой создается множество небольших приложений.

По крайней мере, до версии 1.4 у этих приложений были названия, доставшиеся им в наследство от Netscape: Навигатор, Компоновщик и почтовый клиент. Кроме того, они очень тесно связаны друг с другом. С одной стороны, это позволяет пользователю работать только с одним типом интерфейса, при этом не страдает функциональность. С другой стороны, эффективная поддержка такого продукта невозможна: изменения в одном компоненте могут повлиять на все остальные. Поэтому примерно с версии 1.5 браузер и почтовый клиент стали отдельными приложениями. У них появились свои названия: браузер Mozilla (название проекта - Firefox) и почтовый клиент Mozilla (название проекта - Thunderbird). Тем не менее, полный пакет приложений все еще доступен (Mozilla Application Suite).

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

Так как новые приложения узкоспециализированы и все еще непрерывно меняются, в качестве примера и отправной точки в этой книге используется "старый" интегрированный пакет приложений. Он хорошо оттестирован, демонстрирует почти все возможности платформы, лучше документирован и достаточно актуален. Это идеально подходит для начала исследования Mozilla.

В нашем курсе "классический браузер" означает браузер, интегрированный в пакет приложений mozilla.org. Классическая Mozilla относится ко всему пакету приложений, Навигатор - к браузеру Netscape версий 7.0 или 4.79 и т. д. Классический браузер может отображать свое содержимое с помощью темы Classic (которая воспроизводит оформление продуктов Netscape 4.x) или Modern (которая воспроизводит оформление продуктов 5.x). Таким образом, "классическая" тема (Classic) появилась на шаг раньше классического браузера.

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

Подведем итог этих пояснений относительно названий: данный курс - только о платформе Mozilla. Для объяснения работы этой платформы в курсе используется классический браузер и другие части классической Mozilla, но здесь также рассказывается и о том, как построить отдельное приложение. Разрабатываемое на протяжении курса приложение NoteTaker добавляется как расширение к браузеру только потому, что оно слишком маленькое, и поэтому нет смысла делать его самостоятельным. Во время чтения рекомендуется использовать классическую Mozilla 1.7, содержащую платформу Mozilla 1.7. В оставшейся части лекции мы обсудим некоторые другие названия и термины, связанные с технологиями Mozilla.

1.1.1. Версии платформ

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

  • стабильные версии, или основные. Это версии х.y.z; их пользователям гарантируется, что наиболее важные функции (интерфейсы) не изменятся до выпуска следующей основной версии. Примеры: 1.0.1, 1.4.1, также 1.0;
  • версии для тестирования новой функциональности. Это версии х.у, где y > 0. В таких версиях реализуются улучшения и исправления ошибок основных версий. Пример: 1.6, 1.7;
  • версии alpha, beta и release candidate (RC, кандидат для выпуска). Перед выпуском версии, например, 1.7, обязательно будут выпуски версий 1.7alpha и 1.7beta - версий, которые более функциональны по сравнению с 1.6, но недостаточно стабильны, чтобы быть выпущенными как версия 1.7. Версии 1.7RC1 и 1.7RC2 и т. д. более надежны и могут стать окончательной версией 1.7, если пройдут финальное тестирование;
  • версии с обратной связью (talkback). При выпуске любой версии может быть дополнительно собрана версия со включенной функцией обратной связи, которая собирает информацию о состоянии программы в момент аварийного завершения работы. Эти данные отправляются в mozilla.org, где они будут использованы для отладки и определения надежности версии;
  • нестабильные и отладочные версии. Каждую ночь автоматически собираются версии, которые содержат все последние изменения и для которых нет никакой гарантии, что они будут работать корректно. Такие версии компилируются с дополнительными функциями отладки, которые можно использовать для анализа работы сборки. Функции для отладки включены и в само приложение, и в платформу;
  • неофициальные версии. Так как исходный код приложений доступен всем желающим, любой может собрать собственную версию, если компьютер позволяет это сделать. Многочисленные параметры компиляции определяют окончательную функциональность, которая будет доступна в исполняемом файле. Изменив стандартный набор параметров, сборщик берет на себя ответственность за некоторый риск. Этот риск связан с тем, что при разработке расширений и следующих версий считается, что используются все функции по умолчанию. Так что неофициальные версии могут не отвечать изменениям в последующих версиях платформы и не поддерживать некоторые приложения Mozilla.

Во время изучения этого курса можно использовать любую готовую версию платформы: основную или для тестирования функциональности.

1.1.2. Примеры приложений

Вот некоторые из известных приложений, созданных на основе платформы Mozilla:

  • Netscape 7.0. Коммерческая версия Mozilla, включающая в себя дополнительную функциональность, отвечающую целям бизнеса AOL Time Warner в Internet. Основные различия: поддержка системы мгновенных сообщений AOL, интеграция с серверами AOL, менее гибкая система подавления всплывающих окон, измененная обработка cookies, общая доводка графического интерфейса. Netscape 7.0 основывается на Mozilla 1.0.1. Netscape 6.x также основывался на Mozilla, но на версии 0.9.4, и содержал много ошибок.
  • Compuserve 7.0. У AOL есть также более старая клиент-серверная служба для работы в Internet, у которой все еще очень много пользователей. Версия 7.0 клиента основывается на Mozilla 1.0.1.
  • AOL 8.0 для MacOS X. Основной клиент для работы в Internet пользователей AOL. Он очень распространен и обладает легко настраиваемым интерфейсом. Начиная с версии 8.0, вариант для Macintosh больше не использует Internet Explorer, а поддерживает Mozilla 1.0.1.
  • браузер Mozilla. браузер от mozilla.org, более компактный и несколько менее функциональный по сравнению с классическим браузером Mozilla.

Два отличных примера приложений не для Internet дают OEone и ActiveState.

Продукция OEone (http://www.oeone.com) предназначена для начинающих пользователей. Продукт OEone HomeBase является особой комбинацией Linux и расширенной версии платформы Mozilla под названием Penzilla. В результате получается система для работы с компьютером, содержащая все необходимое. На рисунке 1.1 показан снимок такого рабочего стола на основе Mozilla.

Рабочий стол OEone HomeBase. Использовано с разрешения OEone Corporation (www.oeone.com).

Рис. 1.1. Рабочий стол OEone HomeBase. Использовано с разрешения OEone Corporation (www.oeone.com).

ActiveState (http://www.activestate.com) предлагает интегрированную среду разработки для программистов под названием Komodo, которая также основывается на платформе Mozilla. Снимок окна можно увидеть на рисунке 1.2.

Среда разработки ActiveState’s Komode 3.1. Использовано с разрешения ActiveState (www.activestate.com).

увеличить изображение
Рис. 1.2. Среда разработки ActiveState’s Komode 3.1. Использовано с разрешения ActiveState (www.activestate.com).

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

  • Camino (ранее Chimera) - браузер для Mac OS X, использующий интерфейс Cocoa и традиционную систему меню Macintosh;
  • Galeon, Nautilus - программы просмотра, тесно интегрированные с интерфейсом рабочего стола GNU/Linux GNOME. Частично эта интеграция будет реализована и в стандартной платформе, например, поддержка GTK 2.0;
  • K-Meleon - браузер для Microsoft Windows, использующий технологию ActiveX. Внешне похож на Internet Explorer.

Число приложений, основанных на платформе Mozilla, постоянно растет: ежемесячно появляются уведомления о создании новых продуктов. Их можно найти в центре новостей сообщества Mozilla, http://www.mozillazine.org.

1.1.3. Немного жаргона

На англоязычных сайтах (да и русскоязычных тоже) и в списках рассылок, посвященных Mozilla, часто могут встречаться разные выражения, специфичные только для сообщества Mozilla. Объяснять здесь их все бессмысленно. Если вы знаете английский язык, можете обратиться к документам http://www.mozilla.org/docs/jargon.html и http://devsupport.mozdev.org/QA/thesaurus/. Мы приведем лишь небольшой список наиболее часто употребляемых слов:

  • XP (cross platform) - кроссплатформенный, то есть легко переносимый на другие платформы; встречается в XPCOM, XPFE, XPInstall, XPIDL;
  • FE (front end) - графический интерфейс, графическая часть Mozilla;
  • BE (back end) - программная часть Mozilla, "движок";
  • i18n (internationalization) - интернационализация, поддержка многих языков;
  • l10n (localization) - локализация, поддержка и доработка для использования конкретного языка;
  • tree (дерево разработки) - система исходных кодов Mozilla, из которой компилируются новые версии;
  • bloat (раздуваться) - тенденция любой функционально совершенствуемой программы увеличиваться в размерах;
  • landed (размещенный) - обычно в выражении "landed functionality", окончательное внесение изменений в дерево разработки;
  • dogfood ("собачий корм") - от выражения "eat your own dogfoot" ("сам ешь свой собачий корм") - этап тестирования, когда вы проверяете собственные исправления;
  • porkjockeys ("наездник на свинье") - от поговорки "when pigs fly" (дословно "когда свиньи полетят", то есть "когда рак на горе свистнет") - те, кто хочет радикально перепроектировать Mozilla;
  • r=[адрес эл. почты] - изменения проверены и одобрены владельцем модуля с указанным адресом электронной почты;
  • sr=[адрес эл. почты] - изменения архитектуры проверены и одобрены владельцем модуля с указанным адресом электронной почты;
  • Zarro Boogs - от zero bugs (ноль ошибок) - по этому запросу ошибок не найдено.

Наконец, существует целый список пересекающихся друг с другом технических терминов, например, Seamonkey, NGLayout, Necko и т. д. Только некоторые из них относятся к отдельно выделяемому приложению или технологии, так что в этом курсе мы постараемся их избегать.

Лекция 1: 12345678910 || Лекция 2 >