Но когда на арену выходит маркетинг, появляются нюансы. Оказывается, что для продвижения (или давления на конкурентов) выгоднее говорить, что браузер X поддерживает технологию Y, нежели что браузер X поддерживает экспериментальную технологию Y или что браузер X экспериментально поддерживает технологию Z - смотря в каком месте вы хотите расставить акценты.
Возьмите, к примеру, File API. Штука, безусловно, замечательная. Удобно ли обвинять IE9 в том, что он не поддерживает этот стандарт? Конечно, удобно. Надо ли при этом говорить, что стандарт находится на раннем этапе развития, в рабочих группах активно обсуждаются отдельные детали (вплоть до переименования и изменения методов) и что не следует ввязываться в создание промышленного решения, базирующегося на текущей реализации в том или ином браузере, то есть, скорее всего, его придётся переделывать при следующем обновлении? Об этом можно и умолчать. Маркетинг же.
Я стараюсь хорошо думать о людях, и мне хочется верить, что когда кто-то говорит о том, что IE9 не поддерживает, скажем, Web Sockets, то он действительно опечален этим фактом, так как для его конкретного приложения предоставляемый функционал был бы чрезвычайно удобен. Могу ли я на это рассчитывать? И стоит ли, утверждая поддержку веб-сокетов в браузере X, также говорить о том, что для их работы нужно проделать несколько фокусов с настройками (а всё потому, что в этом браузере, возможно, веб-сокеты были выключены для обычных пользователей из-за обнаруженных потенциальных уязвимостей в протоколе)? Может быть, также, говоря о поддержке нового стандарта, стоит указывать все случаи изменения протокола несовместимым образом? Наверное, стоит. Но ведь можно же и умолчать.
И, кстати, для IE9 есть экспериментальная реализация веб-сокетов.
Я бы мог и продолжить. Например, ведётся очень интересное обсуждение текущего состояния AppCache (Offline Web Applications). Но мне бы очень не хотелось, чтобы всё это воспринималось как попытка оправдать IE9 в том, что он что-то поддерживает, а что-то нет.
Вопрос не в конкретных стандартах или их количестве, а в общем подходе.
Давайте начнём с обратного: почему браузер X вдруг начинает поддерживать технологию Y? Ответ можно сформулировать по-разному, но в целом он, скорее всего, сводится к тому, что производитель браузера X посчитал технологию Y важной и перспективной. (Без уточнения, что считать важным и что перспективным, ладно?)
У каждого производителя есть свои планы на поддержку различных технологий, учитывающие их востребованность и роль в различных сценариях. А также взгляд на важность этих сценариев, стабильность спецификаций, описывающих стандарты, имеющиеся ресурсы в команде разработки и общий объём решаемых задач.
С учётом всего этого строится приоритезация. Самое важное и востребованное оказывается наверху и реализуется в первую очередь. Что-то оказывается менее важным и ставится в очередь для следующих версий.
В какой-то степени на важность и востребованность влияет маркетинг. Когда кто-то (или многие) начинает очень громко кричать, какой он молодец, что сделал что-то очень классное, а другие производители не очень хорошие, потому что этого не сделали, волей-неволей маркетинговые ребята приходят к разработчикам и говорят, что "надо".
Не готов утверждать, что именно так происходит в команде IE, но я бы делал именно так. Единственное, что я точно знаю, так это то, что в команде разработки внимательно изучают отзывы пользователей и разработчиков.
Приоритезация не говорит о том, что та или иная технология хуже или лучше. Она говорит о том, что один функционал сегодня для массового продукта важнее, чем другой. Для массового продукта важен стабильный функционал, который можно использовать, не опасаясь того, что в следующей версии он перестанет работать.
Экспериментальный набор функций должен реализовываться как экспериментальный, и я уверен: команда IE будет продолжать работу в этом направлении (см. HTML5Labs). Стабильный функционал будет становиться доступным в массовом продукте.
И ещё раз, так сказать, рефреном. Производители браузеров, безусловно, должны экспериментировать, делать пробные реализации новых стандартов, предлагать новые идеи и быть одним из двигателей развития веба. Должны ли все-все-все производители экспериментировать над каждым из стандартов? Вряд ли. Должны ли все-все-все производители реализовывать действительно важные и востребованные стабильные спецификации? Уверен, что да.
Сегодня модно ругать IE9 за то, что он не поддерживает text-shadow, хотя до сих пор все популярные браузеры, кроме IE9, неправильно отображают скруглённые уголки.
Вопрос, собственно, в следующем: когда кто-то начинает говорить, что он поддерживает стандарт Y, что он на самом деле имеет в виду? Что он начал реализовывать поддержку и что-то ещё может не работать или работать не так? Что реализовал полную поддержку? Что реализация будет работать на всех компьютерах одинаковым или сходным образом (и вообще будет работать)?