Причины и корни этого роста можно называть разные, и не последнее место тут занимает обострение конкуренции на рынке веб-браузеров — достаточное для того, чтобы снова начали говорить о браузерных войнах. Это интересно, так как когда начинают работать большие маркетинговые машины (явные или неявные, прямые или опосредованные), всё труднее оказывается понять, что же происходит на самом деле, и всё интереснее докапываться до истины.
Правда, впрочем, заключается в том, что нет только одного истинно верного ответа, зато есть множество нюансов и тонкостей, а набор продвигаемых кем-либо маркетинговых идей не даёт полного представления о всей картине разворачивающихся событий.
Развитие браузеров определяется не только стремлением быть в чём-то лучше конкурентов (а зачем иначе нужны все эти тесты производительности и сравнения с конкурирующими решениями), но и желанием предоставить разработчикам новые возможности, которые сделают решение традиционных задач проще или и вовсе откроют новые сценарии для их веб-приложений. И конечно же, желанием сделать жизнь конечных пользователей удобнее, ярче — и (можете вставить миллион других эпитетов).
Производители браузеров не только конкурируют, но и (совместно) развивают веб. Верно и то и другое, и в этом смысле поддержка того или иного нового (или не очень нового) стандарта становится новой опцией не только для разработчика, но и для маркетолога.
Маркетинг может быть не обязательно прямым, исходящим от той или иной организации, разрабатывающей браузер, но и косвенным, идущим от сообщества или энтузиастов, имеющих свои интересы, предпочтения и видение происходящих событий.
В сущности, сегодня поддержка той или иной технологии (веб-стандарта) реально становится инструментом продвижения, причём не менее важным, чем преимущества в скорости работы или загрузки, потребляемой памяти, количестве плагинов или аудитории пользователей.
Все говорят, что поддерживают HTML5, CSS3, различные API для JavaScript и другие интересные технологии. Некоторые кивают на других, указывая, что те что-то не поддерживают, выставляя себя в выигрышном свете.
И это даже может быть правдой, но, как говорится, не всей правдой.
Прежде всего, веб-стандарты могут иметь разные статусы (Working Draft, Candidate Recommendation, Proposed Recommendation, W3C Recommendation). Тот или иной статус не делает стандарт менее или более стандартным. Ключевой вопрос — в стабильности и подверженности изменениям.
Как правило, считается, что стандарт в статусе Working Draft (WD) является нестабильным, неокончательным и может меняться на основании отзывов от индустриальных экспертов и производителей браузеров. Могут быть и исключения, связанные с особенностями того или иного стандарта. Например, спецификация HTML5 очень большая и отдельные её части достаточно стабильны, а какие-то детали ещё обсуждаются. Есть примеры, когда стандарт «откатывается» до предыдущего статуса по процедурным особенностям, как это происходит с CSS 2.1, который тоже формально находится в статусе WD (Last Call). Бывает так, что развитие стандарта прекращается в пользу другого, как это случилось с WebSQL Database.
Статус WD не делает стандарт плохим или неперспективным, и навряд ли какой-либо производитель браузера возьмётся утверждать, что не будет его никогда поддерживать, если он будет востребован. Вопрос в том, как трактовать развивающийся стандарт и в каком виде его следует реализовывать и поддерживать.
Нужно ли реализовывать нефинальные версии стандартов? Безусловно, да! На самом деле, наличие таких реализаций является ключевым фактором в становлении понимания того, как стандарт будет работать на практике, насколько он будет востребован и как его нужно корректировать для достижения общего консенсуса. К слову, наличие реализаций стандарта является необходимым условием его финального утверждения в качестве рекомендации.
Но когда на арену выходит маркетинг, появляются нюансы. Оказывается, что для продвижения (или давления на конкурентов) выгоднее говорить, что браузер X поддерживает технологию Y, нежели что браузер X поддерживает экспериментальную технологию Y или что браузер X экспериментально поддерживает технологию Z — смотря в каком месте вы хотите расставить акценты.
Возьмите, к примеру, File API. Штука, безусловно, замечательная. Удобно ли обвинять IE9 в том, что он не поддерживает этот стандарт? Конечно, удобно. Надо ли при этом говорить, что стандарт находится на раннем этапе развития, в рабочих группах активно обсуждаются отдельные детали (вплоть до переименования и изменения методов) и что не следует ввязываться в создание промышленного решения, базирующегося на текущей реализации в том или ином браузере, то есть, скорее всего, его придётся переделывать при следующем обновлении? Об этом можно и умолчать. Маркетинг же.