<rmcreative>

RSS

Они убивают браузеры, не так ли?

4 июня 2008

Мой перевод статьи «They Shoot Browsers, Don't They?».

Опубликован также на CSSBlast.

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

http://alistapart.com/d/theyshootbrowsers/ALA253_jeremy_72.jpg

Специализированные нововведения производителей браузеров уже никого не удивляют. Один лишь Internet Explorer дал нам XMLHttpRequest, innerHTML и цветные полосы прокрутки. В каждом случае мы могли использовать или же игнорировать нестандартные решения. Теперь Internet Explorer представляет новую специализированную технологию: механизм выбора версий. Но на этот раз единственный способ отказаться от её использования — использовать её.

Запутанный клубок

Когда я прочитал о выборе версий в первый раз, здесь, на страницах священного A List Apart, меня смутил один момент. В конце искренней статьи Эрика, рассказывающей о его реакции на предложение, завершающая часть, как мне показалось, намекала на то, что IE8 будет по умолчанию вести себя так же, как и IE7. «Это не может быть правдой!», подумал я. Скорее всего, я не так понял слова Эрика. Чтобы внести ясность в данную ситуацию, я спросил Криса Вилсона, что будет, если IE8 попытается открыть валидный документ, использующий strict DOCTYPE? Мои худшие ожидания оправдались, когда он подтвердил, что браузер будет вести себя точно так же, как и его предшественник.

Это поразительно дерзко. Представьте новую версию Word, которая работает в точности так же, как и старая, если обрабатываемый документ не содержит скрытую команду «использовать новые возможности». Это как раз то, чего хочет Microsoft от веб-разработчиков. Если вы не укажете явно, IE8 (IE9, IE10 и до бесконечности) будут работать как IE7.

Моё негодование не смягчат простые объяснения — то, что Microsoft глупые или являются «злом». Команда Internet Explorer состоит из хороших, знающих стандарты разработчиков. У них наверняка должна быть серьёзная причина предлагать решение, которое на первый взгляд кажется настолько бредовым.

Ломаем веб, чтобы спасти его

Предложение Microsoft было вызвано болезненным событием: переходом с IE6 на IE7. Internet Explorer 6 медленно умирал, не развиваясь многие годы. В конце концов, пришпоренная незаметно отнявшими долю рынка конкурирующими браузерами, Microsoft выпустила Internet Explorer 7 предоставляющий существенно улучшенную поддержку CSS по сравнению с предыдущими версиями.

Из-за того, что IE6 не развивался столько лет и при этом оставался лидером рынка, появилось целое поколение сайтов, адаптированных под странные, но предсказуемые капризы этого браузера. Все эти сайты «работали». Действительно, они отлично выглядели в самом популярном браузере. Но с выходом IE7 эти сайты неизбежно стали отображаться по-другому. IE7 с его улучшенной поддержкой веб-стандартов, отображал сайты значительно ближе к любым другим поддерживающим стандарты браузерам. Несмотря на согласованную кампанию, призванную стимулировать использование разработчиками условных комментариев вместо специфичных для каждого браузера хаков, Microsoft получили неимоверное количество жалоб от владельцев сайтов, расстроенных тем, как IE7 всё изменил. Это то, что имеет ввиду команда разработчиков Internet Explorer, когда говорит «ломаем веб».

Эта весомая фраза не выдерживает пристальной проверки. Во-первых, то, что здесь рассматривается — не «веб», а «несколько сайтов». Во-вторых, больше подойдёт не «ломает», а, если говорить точнее, «отображает по-другому». Наконец, важно учитывать, что мы говорим о том, как сайты отображаются в одном браузере: под «ломаем веб» команда IE в действительности имела ввиду то, что их браузер будет отображать документы ближе к тому, как это делают большинство современных браузеров. Неужели это было бы настолько плохо?

Кто-нибудь подумает о детях?

На первый взгляд, быть лидером рынка — это то, к чему нужно стремиться. Но подумайте, сколько какая это ответственность… Вы действительно хотели бы вводить инновации и расширять горизонты, если даже самые маленькие изменения могут иметь разрушительные последствия для тысяч ваших клиентов? Именно из такого паралича пытается вырваться Microsoft. Предложение механизма выбора версий — хороший способ выйти из тупика. Добавлением одного элемента meta, создатель сайта может определить, как именно сайт будет обрабатываться (в одном браузере).

Более того, если бы Microsoft реализовали инструкцию X-UA-compatible в IE7, они бы вероятно избежали неприятностей. Вместо того чтобы требовать от разработчиков обновления CSS и ломать специфичные для браузеров хаки, они могли бы вместо этого просто сказать разработчикам добавить одну строчку в секцию head документов. Несмотря на то, что трудно представить себе, что переход с IE7 на IE8 вызовет такой же беспорядок, очень обнадёживает то, что у Microsoft всё продумано. Выбор версий позволяет владельцам сайтов закрепить (для одного браузера) алгоритм отображения на указанной версии. Это хорошо. Несмотря на то, что это возможно не затронет соблюдающих стандарты разработчиков, таких как вы или я, владельцам сайтов, которые не хотят задумываться о будущем, предлагается простое решение. Более того, тот факт, что инструкция X-UA-compatible может быть послана заголовком, означает, что данную проблему могут решить системные администраторы при помощи несложной настройки серверов.

Но даже это, по словам Microsoft, слишком сложно. Вместо того чтобы просить разработчиков, которые не хотят использовать новые возможности, добавить элемент meta или послать заголовок, Internet Explorer ожидает, что соблюдающие стандарты разработчики не будут использовать выбор версий… используя выбор версий.

Аргументация такова, что разработчики, соблюдающие стандарты в меньшей степени, не будут будоражить свои умишки добавлением одной дополнительной строчки в свои документы. Вместо этого, их надо поощрять в стремлении продолжать угождать причудам одной определённой версии лидирующего на рынке браузера. То, что их документы «сломаются» в других браузерах — не проблема Microsoft. Контраргументом к этому снисходительному мировоззрению можно считать то, что соблюдающие стандарты разработчики лучше справятся с добавлением одной строчки в разметку документа, несмотря на то, что по какой-то необъяснимой причине инструкция для использования самого современного отображения (ведь IE=передовой браузер) довольно обескураживающая.

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

Боязнь утонуть

В то время как большая часть сообщества веб-разработчиков видела в выпуске IE7 долгожданное возвращение эталона, в стенах Редмонда IE7 рассматривали как ошибку. Microsoft не может позволить себе второй переход на IE7. Выбор версий — технология рождённая страхом. Боязнь «сломать веб», что в действительности означает «отображать некоторые сайты различно в одном браузере», побудила к такому драконовскому поведению по умолчанию.

Основан ли этот страх на фактических данных о том, насколько радикально IE8 будет «ломать» существующие сайты или нет? Лично я очень озадачен: что же они планируют добавить в следующей версии браузера, что он разорвёт сайты в клочья? Если IE8 собирается отличиться от предшественников лучшей поддержкой стандартов, то мы можем дать довольно точную оценку того, как он будет отображать сайты, просто просмотрев эти сайты в соответствующем стандартам браузере, таком как, скажем, Firefox, Safari или Opera.

На вершине в одиночестве

Было время, когда Friendster был самой большой социальной сетью во всей сети. MySpace и Facebook лишь маячили на горизонте. Было время, когда Netscape Navigator был незыблемым королём браузеров, а Internet Explorer был смешным претендентом, играющим в пострадавшего. В World Wide Web положение вещей — изменчивая непостоянная штука. Представленное поведение по умолчанию для выбора версий основано на событиях, происходивших в тот короткий промежуток времени, когда Microsoft, становясь победителем, перекрыла кислород своему же браузеру. Существует негласное положение, что единственный путь полноценного взаимодействия с веб проходит только через один браузер: Internet Explorer.

Нам говорят, что дефолтное поведение при выборе версий необходимо потому, что без него веб превратится в одну большую аварию — беспорядочное место преступления (в одном браузере). Если верить Microsoft, такое поведение по умолчанию необходимо IE8 и последующим версиям для того, чтобы спасти веб (опять же в одном браузере). Согласитесь вы или не согласитесь с поведением по умолчанию, в конце все сводится к вере: вере в Microsoft, который точно предсказывает будущее влияние IE8.

Буду судить, основываясь на фактах. У Microsoft есть простой способ доказать необходимость обязательного выбора версии: выпустить бета-версию IE8 с отключенным по умолчанию механизмом выбора. Тогда мы увидим, насколько сломался веб некоторые сайты различно отображаются в одном браузере.

Я выслушал и понял все аргументы за предлагаемое поведение по умолчанию: все они подразумевают, что без него, IE8 создаст беспорядок в значительной части веб. Если данное опасение подтвердится бета-релизом без механизма выбора версий, я поддержу предложенное поведение по умолчанию. А пока я попрошу Microsoft сдержать обещанное много-много лет назад и научить их браузер отображать валидный документ с принятым DOCTYPE используя все его возможности.

Будущее несовершенно

Механизм выбора версий — неплохая идея. Выбор механизма подачи при помощи элемента meta или заголовка даёт надежду. В качестве необязательной возможности он действительно может быть полезен в некоторых случаях. В случае же обязательного требования, он мешает прогрессивному улучшению.[1]

Предложенное поведение по умолчанию для выбора версии Internet Explorer решает проблему «поломки веб» также, как обезглавливание решает проблему головной боли. В его текущем состоянии, механизм выбора версии — лекарство, которое убьёт пациента. Выбор версии мог стать возможностью для Microsoft продемонстрировать инновацию. Вместо этого, предложенное решение демонстрирует фундаментальное непонимание World Wide Web -места, которое по словам Сэра Тима Бернерса Ли, его создателя, всегда будет «немного сломано».

Сноска

[1] С другой стороны, непопулярные сегодня DOCTYPE, такие как HTML5, могут быть использованы для включения современного отображения в будущих версиях Internet Explorer. Это обнадёживает, хотя пока что HTML5 не готов к использованию-любой DOCTYPE, который включает элемент FONT, всё ещё ставит некоторые вопросы, которые необходимо разрешить. Более того, как только HTML5 начнёт широко использоваться, Internet Explorer, возможно, закрепит механизм отображения и для документов этого типа.

Комментарии RSS

  1. №320
    uggallery
    uggallery 04.06.2008, 15:18:26

    Оригинальное название статьи - намек на известный фильм: «They Shoot Horses, Don't They?» В СССР он был известен как «Загнанных лошадей пристреливают, не правда ли?», и был страшно популярен. В твоем переводе намек теряется, к сожалению.

    Сам только недавно узнал оригинальное название фильма. Его режиссер на днях умер.

  2. №321
    Sam
    Sam 04.06.2008, 15:20:36

    Перевод названия делал не я… я не смог. Подозревал, что что-то тут не так.

  3. №330
    MT
    MT 04.06.2008, 22:41:29

    Уже три месяца неактуально:

    «We’ve decided that IE8 will, by default, interpret web content in the most standards compliant way it can. This decision is a change from what we’ve posted previously.»

  4. №333
    Sam
    Sam 05.06.2008, 18:47:56

    Это радует.

  5. №334
    Марат
    Марат 05.06.2008, 21:59:37

    Скажи свой перевод названия - поправим ;)

  1. Почта опубликована не будет.

  2. Можно использовать синтаксис Markdown или HTML.

  3. Введите ответ в поле. Щёлкните, чтобы получить другую задачу.