Браузеры и веб-стандарты. Время жизни и точки зрения

Изучение развития и эволюции браузеров – довольно интересное занятие с просветляющими эффектами. В этом контексте с сфере веб-разработки и особенно в области веб-верстки есть очень много стереотипов, и предрассудков.

Один из таких стереотипов восприятия касается IE6. А как говорил Tryon Edwards:

image

В качестве замечания: я не собираюсь за кого-то оправдываться, давайте просто посмотрим, как случилось то, что мы имеем сегодня.

Развитие и эволюция браузеров

Если смотреть на развитие рынка веб-браузеров в прошлом (если интересны детали, в Wikipedia есть весьма подробная история выхода различных версий самых разных браузеров), то довольно наглядно динамика происходивших трансформаций иллюстрируется диаграммами usage share:

image

Layout engine usage share / Wikipedia

Период выхода IE6 и завоевания доминирующей доли рынка – это конец 90-x – начало 2000-x. (2000 – выход IE5.5, 2001 – IE6). Можно долго рассуждать, почему так случилось, и что стало тому ключевой причиной (например, бесплатность и поставка в составе ОС), но, в любом случае, это не отменяет двух простых фактов относительно конкретно того периода:

  1. конкуренция на рынке веб-браузеров практически сошла на нет (что есть бесспорный стопор общего развития, но не отменяет наличия этого факта);
  2. на рынке в принципе не было Firefox, Safari и уже тем более Chrome ;)
Про Internet Explorer 6

Другой интересный аспект, который сегодня очень часто выходит за рамки рассмотрения большинством активных нелюбителей IE6, заключается в том, что в то время IE6 не просто был доминирующим браузером, но и в сообществе воспринимался как самый прогрессивный на тот момент.

К примеру, вот цитата Дугласа Крокфорда (Douglas Crockford, senior JavaScript architect в Yahoo!), чье имя должно быть известно всем, кто использует JSON в своей работе. Рассказывая об истории JSON, Дуглас говорит буквально следующее:

…We did it this way because it worked as well in IE as it did on Netscape 4, and it was really important for us to work on Netscape 4 in 2001, because it was still an important browser. There's a lot of talk about how awful Netscape 6 is, but at that point in time, IE 6 was the best browser that had ever been. Netscape 4 was so bad, it made Microsoft look brilliant and competent. That's just how bad it was. It was a crime against humanity.

We wanted to be able to support it because there were a lot of technologically backward companies that were stuck on it - they would not allow their employees to use IE 6 – and we wanted to do business with some of those, including Sun Microsystems and IBM. So this was the scheme we came up with to do the communication at that time.

Не правда ли, смотрится очень современно.

Firefox и компания => на пути к новым браузерным войнам

Значительно позже (спустя 5 лет!) выходит Firefox 2.0, начинающий завоевывать заметную популярность среди пользователей. Примерно тогда же выходит IE7. Годом позже, в 2007, выходит последняя версия Netscape 9.0, а Safari обновляется до версии 3.0.

Самое интересное начинается в 2008: в начале года анонсируется бета-версия IE8, Opera обновляется до 9.5, Firefox релизит 3.0 и на сцену выходит Chrome 1.0.

Начинается новая эра, которую уже успели назвать “новыми браузерными войнами”.

2009 – наше время – это кипучая жизнь новых веб-стандартов и новых браузеров.

Развитие и эволюция веб-стандартов

Конец 90х – начало 2000х – эра становления тех веб-стандартов, на которых зиждится большая часть современного интернета. Практически все то, что мы используем в верстке сегодня, было готово именно в это время.

  • 1997-1998 – CSS 2, HTML 4.0
  • 1999-2000 – HTML 4.01, XHTML 1.0, начало работы над CSS3
“Да здравствует XML!”

А дальше… в общем-то, с точки зрения клиентской веб-разработки, дальше практически ничего не происходит. Допиливается CSS 2.1 (кстати, до сих пор), периодически появляются различные новые модули CSS3 (без дальнейшего развития). Потихоньку развиваются различные модули DOM2 и DOM3.

Но в это же время активно развивается XML-мир, семантика, онтологии и другие интересные вещи. Появляется огромное количество специцикаций, приближающих приход семантического веба. Кажется, что будущее веб-разметки за XHTML (2.0).

(А сколько в это время было интереса к XSL и XSLT!)

Тогда же активно развивается идея веб-сервисов с кучей сопутствующих веб-стандартов.

Новая жизнь веб-стандартов

Возврат к жизни веб-стандартов, связанных с веб-страницами, что неудивительно, совпадает с возрастанием конкуренции на рынке веб-браузеров:

  • 2008 – стандарт HTML5 вносится на рассмотрение в W3C
  • 2009 – прекращается работа над XHTML 2.0, выходит новая версия стандарта JavaScript – ECMAScript 5
  • 2009-2011 – появляется огромное количество новых API для JavaScript, сильно активизируется работа в рабочей группе CSS (CSS 2.1 доводится до состояния PR, обновляются спецификации многих модулей CSS3, появляется множество новых модулей), начинается работа над обновлением SVG и многое другое.
Другой веб

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

  • Web 2.0. Общая истерия уверенность в начале коренной трансформации веба, отчасти инспирированная с подачи Tim O'Reilly – “What Is Web 2.0”.
  • Динамичный AJAX-веб. (Не секрет, что корни AJAX лежат в XMLHttpRequest, который впервые появился еще в IE5(!) в виде контрола XMLHTTP ActiveX и значительно позже был реализован в других браузерах.) Глобальный приход AJAX как явления и устоявшегося подхода знаменуется 2005 годом – см. статью Jesse James Garrett “Ajax: A New Approach to Web Applications”.
  • RIA и уверенная эволюция веб-плагинов (Flash, Silverlight) . Стремление к качественно новым веб-приложениям, работающим в браузере. Практически все, что в последние несколько лет приходит в виде новых веб-стандартов находит аналоги во Flash или Silverlight (динамичная работа с графикой и аудио/видео, расширенное хранилище данных, работа offline, работа с файлами и устройствами ввода и многое другое).
  • Бурный рост мобильного веба. Новый форм-фактор, адаптация интерфейса, геопозиционирование, огромное количество новых пользователей, новые сценарии работы с вебом. И рост мобильных приложений vs. мобильных сайтов.
  • Бурный рост социального веба. Связи и контакты, взаимодействие, распространение контента, flickr и youtube, facebook, вконтакте и одноклассники, веселые фермеры и золотокопатели, twitter и foursquare и много другое. И огромное количество новых пользователей. И веб-серфинг как доминирующая модель работы за ПК.
  • Мощность ПК и обновленные движки браузеров. Многоядерность, встроенные или дискретные видео-карты, аппаратное декодирование аудио и видео. Аппаратное ускорение графического контента и намного более быстрые движки JavaScript.

И все это – за последние несколько лет.

Веб-разработчики

(Здесь и далее я руководствуюсь данными исследования A List Apart за 2009 год, на сегодня картина если и изменилась, то только в сторону увеличения количества молодых веб-разработчиков).

image

Большинство людей, связанных с вебом, пришло в эту отрасль менее 10 лет назад. Только четверть работает с вебом 10 или более лет. Четверть пришла в последние три года, еще четверть 4-6 лет назад.

image

В возрастном разрезе практически половина из них – это молодежь до 30 лет. Чем они занимались 10 лет назад? Ходили в школу!

Конечно, далеко не все из них, занимаются непосредственно веб-разработкой и уж тем более ее клиентской частью (JavaScript и верстка), но подозреваю, что в этой части средний возраст еще меньше.

По моим наблюдениям, большинство нынешних клинтских веб-разработчиков начали свой веб-путь относительно недавно – как раз во время появления и развития Web 2.0. Многие из них пришли в эту область в самое интересное время, то есть в последние 3 года, – время бурного роста новых веб-стандартов и очередной трансформации веба.

Мне, как и многим из них сильно симпатизируют новые возможности. Меня, как и многих из них сильно удручает существующий балласт в виде старых браузеров (и речь далеко не только про IE6-7).

Точки зрения

Хотя мы все, в общем-то рады светлому будущему, многие из нас по-разному смотрят на светлое прошлое. Очень часто я встречаю мнение, что “IE – это зло”, и чуть менее странную формулировку “IE6 – это зло”. И хотя и лично мне, и Microsoft тоже очень хотелось бы, чтобы IE6 стало меньше, подобная постановка проблемы не может не вызывать недоумений.

Время формирования современного состояния веба и того набора стандартов, на котором строится большинство нынешних веб-страниц, – это история 10-летней давности. И ровно также как неправильно оценивать исторические события, прошлые традиции и мнения с колокольни сегодняшего дня, глупо рассматривать то, что было 10 лет назад, применяя шаблоны сегодняшего развития интернета и веба.

Сегодня очень много говорят о совместимости (interoperability) – и этот вопрос особенно важен именно сегодня, когда на рынке есть целых 5 независимых популярных веб-браузеров, и для всех нас крайне важно, чтобы все браузеры следовали веб-стандартам и делали это правильно, т.е. совместимым образом. В намного меньшей степени этот вопрос стоял 10 лет назад (см. выше), и более того – IE6 во многих аспектах был пионером.

Сегодня очень много говорят о новых возможностях, но абсолютно бессмысленно примерять это лекало на браузеры, вышедшие до появления и окончательного становления новых веб-стандартов.

Кто-то жалуется, что есть сайты заточенные под IE6 (что было нормально 10 лет назад, учитывая ситуацию на рынке – см. выше), а кто-то сегодня делает сайты с технологиями “webkit-only”. Кто-то начинает внедрять новые неустаканившиеся веб-стандарты как будто они уже полностью готовы к работе, а кто-то отмечает разницу между стабильным и экспериментальным функционалом.

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

Точки зрения могут быть разными, как может быть и разным жизненный подход. Для меня IE6-8 (но также и Firefox ≤3.6, и Safari ≤4, и Chrome ≤4, и Opera ≤10),  – это данность того IT-ландшафта, в котором мы сегодня живем. Не что-то плохое или хорошее, а просто данность, как наследие и архитектура прошлого, к которому бессмысленно давать оценки с позиции сегодняшнего дня. Данность, под которую можно адаптироваться или которую можно игнорировать. Данность, как часть профессии веб-разработчика, к которой разумно применять финансово-сложностные оценки, но не стоит вливать эмоции.

Наконец, красивая цитата Стивена Кинга:

image

(и это не только к уменьшению доли IE6.)