Популярность Firefox снижается. Некогда популярный браузер сейчас занимает 12% рынка. Может ли полная переделка его внутреннего устройства вернуть ему былую славу?
Первоначальный дизайн Firefox был чем-то вроде революционной идеи, но оказался революцией, на которую никто не явился.
Идея заключалась в том, чтобы создать «хром», то есть пользовательский интерфейс вокруг отображаемой веб-страницы, с использованием расширенного набора HTML — XUL, произносимого Zool, и языка привязки, называемого XBL. Функциональная часть интерфейса обеспечивается JavaScript. В этом смысле вы можете рассмотреть Firefox и другие «классические» продукты Mozilla — Thunderbird и SeaMonkey. Другие программисты использовали этот подход, и Mozilla предоставила контейнер для XUL-приложений под названием XULrunner.
Все это было очень продвинутым в то время и с интересной архитектурой, но это было плохо документировано, и в него было очень трудно войти. Это было и есть нестандартное. Mozilla изобрела, разработала и внедрила его, и единственным преимуществом для посторонних было то, что если не смотреть слишком внимательно, он выглядел как HTML.
В фундаментальном дизайне Firefox есть много других ошибок. Например, его движок рендеринга является однопоточным, хотя в настоящее время ведутся работы по созданию одного потока для каждой вкладки.
С течением времени использование XUL все больше походило на проблему для Firefox. Теперь, похоже, пора начинать работу над проектом. В сообщении Дэйва Кэмпа на доске сообщений Mozilla говорится, что замена XUL, основанного на веб-технологиях, чистыми стандартными веб-технологиями была бы преимуществом. Идея состоит в том, что HTML и другие стандарты сейчас развились до такой степени, что нестандартные производные не нужны для создания богатого пользовательского интерфейса.
Преимущества заключаются в том, что движок рендеринга Gecko может отказаться от поддержки XUL и сосредоточиться на быстром рендеринге HTML. Цитировать:
«Поскольку XUL и XBL не являются веб-технологиями, они не получают такого же внимания платформы, как HTML (по уважительной причине!). Проблемы с производительностью остаются нерешенными, и это создает много ненужных сложностей в Gecko. Это сложнее даже для опытных веб-разработчикам, чтобы ускориться. Это дальше от Интернета, и это никому не помогает ».
На данный момент нет четкого плана, как внести изменения, и есть призыв вносить предложения и вклады. Потенциальные потрясения, вероятно, будут огромными, и на это потребуется время. Оригинальные расширения Firefox («устаревшие» расширения) напрямую использовали XUL; более поздние расширения используют API расширений. Сколько всего пострадает, о чем не думали, — большой вопрос.
Mozilla также может полностью перейти на новый движок рендеринга. Экспериментальный сервомотор, написанный на Rust, является потенциальным кандидатом, но на данный момент он не очень развит. Отказ от Gecko, вероятно, будет большим риском, чем его изменение.
Помимо перестройки технологии пользовательского интерфейса, в другом сообщении в блоге объявляется о программе контроля качества (называемой «Great or Dead»), чтобы довести Firefox до уровня стандартных пользователей, например, удалив код, который недостаточно хорош, и позволив сторонним надстройкам решать проблема. С этой целью Mozilla собирается улучшить дополнительный API. Похоже, Mozilla помнит свой первоначальный подход к дизайну браузера — просто предоставьте ядро, а надстройки сделают дополнительные. Это то, о чем он, кажется, недавно забыл, например строить в Pocket, а не поставлять его как надстройку.
Наконец, план состоит в том, чтобы увеличить скорость онлайн-обновлений до такой степени, что, возможно, каждая крошечная ошибка будет исправлена в течение нескольких минут после завершения кода. Звучит неплохо, но есть риск не обнаружить менее очевидных ошибок, пока код не будет использован реальными пользователями.
Трудно сказать, окажут ли эти изменения эффект или даже произойдут, но хорошо, что Mozilla уделяет некоторое необходимое внимание Firefox.