Откуда взялся Firefox?
admin
🕛 15.02.2006, 00:21
В Mozilla я оказался потому, что меня всегда привлекала идея заняться чем-то, что способно повлиять на жизни миллионов людей. Я и мои друзья, мы жили, образно говоря, в пределах браузера, поэтому мы немедленно могли оценить каждый новый вклад в очередной релиз Netscape. После смены движка Netscape выглядел так, как будто ему нужна любая возможная помощь. В начале 1999 года в новом браузере присутствовали лишь базовые элементы старой платформы Коммуникатора; пользоваться этим можно было с трудом, и программисты Netscape отчаянно работали над разработкой новой структуры. Я думал над тем, что мог бы предложить сам. Задача непростая - пока делал себе сайт, пришлось выучить JavaScript и HTML, но C++ я не знал. И, что, возможно, еще важнее, мой AMD K6/166 был не самым подходящим компьютером для компиляции такого длинного кода, какой был у Mozilla (даже когда он вмещался на флоппи почти целиком!). И все же я заметил, что пользовательский интерфейс разрабатывался при помощи чего-то похожего на HTML и Java. Понимая, что моя дотошность и внимательное отношение к деталям могли оказаться полезными, я начал работать над усовершенствованием пользовательского интерфейса. Меня привлекли к доработке интерфейса и к созданию средств XUL (расширенного языка пользовательского интерфейса), при помощи которых интерфейс должен был работать. Через несколько месяцев мне предложили должность в команде разработчиков браузера.
Была середина января 2000 года, я стоял в тускло освещенном зале прилета в Сан-Франциско и ждал, чтобы меня встретили. Через несколько минут ко мне подошел улыбающийся человек с пышной рыжеватой шевелюрой. Это был gramps. Вот я и приехал.
Непростой альянс
Отношения между open-sourse проектом Mozilla и компанией Netscape никогда не были простыми. Mozilla отстаивала собственную индивидуальность, ей хотелось позиционировать себя как сообщество, где взносы участников выражаются в доверии и работе над программным кодом. В то же время компании, подобные Netscape, концентрируют все внимание на конечном продукте, выпуск такого сложного ПО как Netscape был - и остается - очень сложной задачей. В Netscape были убеждены, что только они знают, как ее можно реализовать. Тогда я думал, что так и есть.
Несмотря на то, что в сообществе было много добровольцев, недостающих функций у браузера было больше, чем реализованных; исправленных багов было меньше, чем неисправленных. Единственной организацией, которая могла предложить стратегию по уменьшению огромных баг-листов, была компания Netscape.
Проблема общения
Тут в Netscape допустили две ошибки. Они не публиковали достаточно сведений о ходе работы над проектом, и сообщество не могло эффективно помогать им в реализации их цели. Более того, сами цели часто не оглашались. Инженеры и менеджеры проекта не способствовали распространению информации, потому что гораздо проще было договориться внутри команды разработчиков, чем выносить вопрос наружу. Результаты внутренних дебатов часто не доходили до коммьюнити. Кроме того, в команде не было понимания важности создания публичной документации.
Другим промахом было отсутствие ясного представления о том, каким будет продукт. Для команды разработчиков из CPD (отделение Netscape, ответственное за браузер/почту) идея их работы заключалась в том, чтобы улучшить юзабилити и внешний вид браузера, используя новый движок. Цель была - улучшить браузер и почтовый клиент.
Netcenter и его план
Важнее было то, что Netscape нужны были деньги для выживания. Отделение, занимавшееся сайтом Netcenter, имело свои виды на браузер. Некогда самый популярный портал в сети, Netcenter терял посетителей, которые уходили к конкурентам, таким как Yahoo и МSN. Браузер Netscape должен был каким-то образом возместить недополученную порталом прибыль. Первый придуманный в Netcenter способ - установка ссылок в интерфейсе браузера на портал и на бизнес-предложения.
Через Netcenter команда разработчиков браузера получила ряд инструкций, в числе которых со временем появилось, например, требование разработать тему оформления, которая бы органично встраивалась в дизайн портала Netcenter. Некоторые пользователи после установки свежей темы заподозрили, что у них сломался монитор, и их можно было понять. Дополнительный урон браузеру нанесли ссылки, в огромных количествах встроенные в пользовательский интерфейс, а также большой, но практически бесполезный сайдбар с партнерским контентом, который привлекал внимание и боролся с веб-контентом за внимание пользователя.
Со временем Mozilla.org вынудила Netscape переместить большую часть коммерческих решений на приватный CVS сервер, на котором также разрабатывался Netscape Instant Messenger. Спорная тема «Modern», появившаяся в Netscape 6 Preview Release 1, была исключена из релиза и заменена на новую, более стильную, но «неродную» тему.
Mozilla, период инвалидности
Поскольку основной объем работы над интерфейсом осуществлялся сотрудниками Netscape в соответствии с требованиями Netcenter, интерфейс Mozilla пострадал. Вместо того чтобы быть четким и простым ядром, на базе которого Netscape мог бы построить подходящий конечный продукт, пользовательский интерфейс Mozilla был нагружен бесполезными дополнительными полями, неуклюжими конструкциями, которые были нужны только для «коммерческой ветви» Netscape.
Усугубляло положение то, что к тому моменту над проектом трудилось более сотни сотрудников, разбросанных по разным, часто очень слабо связанным между собой отделениям внутри CPD. Штат Netscape сильно увеличился за последние годы, были наняты разработчики, которые по своим способностям должны были бы часто прибегать к помощи окружающих, а они, напротив, обладали большой самостоятельностью. Пользовательский опыт привлекался редко, и в результате интерфейс потерял свою стройность.
Борьба за перемены
Программисты, работавшие над браузером, были недовольны сложившимся положением вещей. Я, со своей стороны, начал разрабатывать оформление, которое позже стало известно под названием «Classic theme» - оно же легло в основу дизайна Firefox. Поскольку талантами художника я не обладал, пришлось использовать иконки из Netscape 4. Эта тема стала дефолтной для релизов Mozilla, а Netscape в конечном итоге выбрал для своей шестой версии тему «New Modern». Некоторые из нас активно выступали против этого решения, но безуспешно. В глазах обозревателей чужеродная тема стала последней каплей. На Suck.com появилась разгромная статья, в которой Netscape 6 привлекался в качестве самого яркого оформительского провала.
Несмотря на неудачу с Netscape 6, команда разработчиков была по-прежнему полна энергии. Интегрировав некоторые коммерческие расширения в Netscape, программисты сфокусировались на улучшении open-sourse релизов, надеясь, что Mozilla станет той базой, о которой они мечтали. Продукты под брендом Netscape практически игнорировались.
Многие волонтеры, в том числе и я, продвигали дальнейшее улучшение пользовательского интерфейса. У нас была большая поддержка внутри компании. Время от времени я - чтобы поразмяться - принимался изображать, говоря принятым в Mozilla языком, «владельца модуля пользовательского интерфейса». Это позиция тогда была свежим изобретением, она появилась после провала той самой темы «New Modern» - как попытка подчеркнуть автономность развития проекта. Дело не выгорело. Ослабленное управление компании, как только дело дошло до разработки функциональных возможностей дизайна, не переставало, противореча всякой логике, подчеркивать важность соблюдения старшинства. Мне было сказано, чтобы я не рассчитывал больше использовать свои open-sourse штучки в обход интересов сотрудников Компании. Я же оставался верным своим убеждениям и отказывался рассматривать некачественные патчи. Меня почти уволили. Другим повезло меньше. В конце концов, эта история стала источником огромного разочарования, крушением надежд. Я осознал, что византийские хватка Netscape целиком распространилась на продукты Mozilla, от меня же ожидали, что я, как сотрудник Netscape, использую свой статус «владельца модуля» для обслуживания причуд официального работодателя. Я был просто куклой.
Я расслабился. Больше я не стремился развернуть баталию по поводу каждого патча подозрительного качества и не стремился выиграть такой бой любой ценой. Netscape и Mozilla продолжали выпускать релиз за релизом. Приложения могли похвастать улучшенным исполнением и более стабильной работой, однако интерфейс оставался вполне бестолковым.
Как-то раз в середине 2001 года я среди ночи отправился в Denny’s с Дэвидом Хайяттом (David Hyatt). Дэвид - это человек, чей энтузиазм обладает поистине гипнотическим свойством. Никто не может противостоять очарованию идей, которые рождаются в разговоре с Дэвидом. Итак, мы обсуждали, как внутри Mozilla кое-что прогнило, мы винили в этом политику Netscape и неспособность Mozilla отстоять собственную независимость. Дэвид высказался в том смысле, что, возможно, нам следовало бы в разработке пользовательского интерфейса вернуться к самому началу - большая часть старого кода была настолько неуклюжей, что действительно лучше было бы оставить ее в покое и посмотреть на проблему свежим взглядом. Мы обсуждали возможность использования C# и .NET - так родилась Manticore. Как часто бывает с прототипами, первоначальный задор перерождался в нечто скучное и утомительное по мере того, как задача приобретала все более четкие контуры. Пару недель спустя Manticore умерла. Однако Дэйв продолжал экспериментировать - сначала появилась Camino, а потом, наконец, Firefox.
Все эти попытки явились именно реакцией на разброд и шатание вокруг комплекта приложений Mozilla. В это время Netscape серьезно сдавал позиции в пользу AOL, так что давление со стороны Netcenter начало ослабевать, а влияние комьюнити - расти. Даже после того, как Netscape отделился от тяжелого Netcenter-овского наследства, интерфейс не слишком улучшился. Стремительное развитие пользовательского интерфейса теперь сдерживалось тем самым процессом, который был налажен с целью защитить качество кода еще в те времена, когда любой несведущий инженер мог свободно принять участие в работе.
Каким должен был стать интерфейс браузера? Никакого окончательного видения по этому поводу не существовало. Слишком много возможностей по внесению правки оставалось открытыми: кто угодно мог внести любые изменения или дополнения. Не было никакого плана выхода из хаоса.
С Firefox же все было иначе. Вслед за версией 0.6 я предложил план создания версии 1.0. Затем последовало несколько уточнений, полтора года работы над внешним интерфейсом в сплоченной группе с хорошей мотивацией, шедшей параллельно с усовершенствованием Gecko, и браузер Firefox 1.0 вышел в свет.
Как раз в это время Mozilla наконец получила вожделенную самостоятельность. Некоммерческая организация была зарегистрирована в тот самый день, когда у многих технических специалистов в Netscape истекли сроки контрактов, и компания решила их не продлевать, - это было похоже на массовую резню.
В связи с появлением Firefox и особенностями модели развития этого браузера было много обиженных возгласов, и они слышны до сих пор. В момент создания шумели по поводу того, что не всегда большинство умнее меньшинства; о преимуществах небольшой команды разработчиков с жестким централизованным управлением; о том, как важно строго придерживаться принятой политики собственности на модули Mozilla. На практике эти разговоры обернулись тем, что доступ к исходникам Firefox был открыт только для участников команды разработчиков и ни для кого больше. Это был наш протест против неэффективности предыдущих интерфейсов. Мы действовали излишне жестко, мнения вокруг проблемы поляризовались. Над нами тяготел дурной опыт работы в Netscape, опыт полной дезорганизации. Не думаю, что многие это понимали, нам же было непросто об этом говорить.
Большинству казалось, что мы попросту разрушаем ряды единомышленников, считая их работу бесполезной. Говорили, наши действия противоречат принципам построения сообщества. Это была неправда - большинство проектов с открытым кодом имеют централизованное управление, и руководит ими меньшинство. У многих есть детальные планы, в которых заложены будущие релизы. Правда, в нашем случае обстановку нагнетал наш собственный догматизм - мы не позаботились о грамотном пиаре.
Объяснение
Мы были тверды, и мы сделали возможным релиз 1.0. Это была долгая, сложная, всепоглощающая работа. Я мог бы писать и писать об этом, но, пожалуй, ограничусь лишь тем, что скажу: несмотря на тяжелый старт, на поток критики в наш адрес на протяжении всей работы, предложенный нами стиль работы оказался результативным. Эта модель сработала даже лучше, чем ранее в Mozilla или Netscape. В первый же день мы зарегистрировали более миллиона скачиваний Firefox 1.0, в течение десяти дней - 10 миллионов и более 100 млн скачиваний до выхода Firefox 1.5, появившегося около года спустя.
Успех Firefox сегодня можно назвать одним из самых ярких взлетов в своей области. По результатам голосования аудитории BrandChannel он занял 7 место среди глобальных tech-брендов, опередив eBay и Sony. Это первый браузер, сумевший отвоевать существенную долю рынка у Internet Explorer, сегодня ему отдают предпочтение 10-25% пользователей - в зависимости от страны. Его популярность продолжает расти. Почтовое приложение к Firefox - Thunderbird - столь же успешно и функционально. Все, о чем мечтали программисты в темные времена Netscape 6, - наконец сбылось.
Здесь и сейчас
Я пишу это, потому что мне хочется получить некую историческую проекцию того, что сегодня представляет собой Firefox. Многое было сказано о развитии браузера с момента выхода в свет Firefox 1.0, однако все началось гораздо раньше. События простираются на многие годы и континенты, затрагивают тысячи людей. Это фантастическая история, в которой есть все классические пружины - жадность, гнев, неразбериха, утраченная любовь. Но в своей сути это история людей, фанатично преданных делу, в которое они по-настоящему верят. Думаю, этот смысл смогут оценить многие - неважно, какой путь они избрали в жизни. И вот в чем секрет мощи Mozilla, ведь влияние сообщества простирается далеко за пределы использования Firefox.
Для меня лично это история осуществления чего-то, во что я верил больше всего на свете. И еще о том, как иногда неожиданно и запросто исчезают мечты. Но в конечном счете оказывается, что при некотором терпении, как следует, старомодно поработав, можно добиться чего угодно.
Спустя годы Mozilla, наконец, стала тем местом, куда люди приходят поделиться своими мыслями о перспективах интернета, направлениях развития Сети. Разные люди, разные мнения, и из всего этого получаются разные проекты: Camino, SeaMonkey, Thunderbird, Sunbird, Chatzilla, Bugzilla и так далее. Можно сказать, из этих приложений складывает особая среда обитания - Mozilla. И хотя взаимосвязанные проекты могут не совпадать в подходах к решению отдельных проблем, любая работа неизбежно окажется полезной - одна разработка питается идеями другой и наоборот. Какой бы проект не привлекал участие конкретного человека, выгода будет общей. Из бесплатных универсальных инструментов складывается тот каркас, опираясь на который система предлагает решения, соответствующие запросам сегодняшнего и завтрашнего дня.
Firefox настолько популярен сегодня, что привлекает поддержку отовсюду. Множество новых добровольцев узнают о проекте и находят новые способы помочь ему. Это важно для динамики развития, для того, чтобы поток инноваций не иссякал. Важно, чтобы мы, кто работает над проектом давно, делились информацией о том, что получилось, а что не получилось; о том, какие были споры, и какой ценой мы добились того, чего добились. Успех вовсе не был случайным, это сумма усилий, потраченных тысячами людей по всему миру в течение более пяти лет.
Неважно, кто участник проекта и как давно им является, неважно, какова его мотивация, - он никогда не должен забывать историю развития Mozilla.