Как стать автором
Обновить

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

Автор, вы участвовали в битве под Сталинградом?
Вопросы автору лучше задавать по-английски. Сделать это можно здесь.
не ожидал, что такое мог написать американец, хотя с их представлениями о ВОВ... меня подобные "писательские" аналогии коробят
Мне они тоже не нравятся, но перевод есть перевод. Пока не придумал чем аналогичным, но не режущим ухо русскому человеку, можно заменить Сталинград.
Если предложите подходящее - с удовольствием поменяю.
высадка в Нормандии, Перлхарбор.
за Сталинградскую битву потери СССР составили цифру то ли бОльшую, то ли сопоставимую со ВСЕМИ потерями американцев за ВСЮ войну.
НЛО прилетело и опубликовало эту надпись здесь
Знаете, в ПНВС была чудная фраза о неких "абсолютниках". По памяти: "Они считали что познание бесконечности требует бесконечного же времени. С этим никто не спорил. Но отсюда они делали неожиданный вывод: поэтому работай-не работай - все едино". "Делать очень простые сайты" - это все равно что вернуться в пещеры и радоваться убитому мамонту, бья себя пяткой в волосатую грудь... А реальная жисть как раз состоит из хождений по краю, нахождения компромиссов и прочей интересной мелочи, из которой в итоге складывается технический прогресс ;)
PS: отдельно хочется отметить решительное "написан неправильно" по отношению к гугльмапсу. "Мы овладеваем новыми видами спора. Спор без фактов. Спор на темпераменте. Спор, переходящий от голословного утверждения на личность партнера" ;) (с) ММ. Мышку и клавиатуру вроде у вас никто не отнимал. Напишите "правильный" гугльмапс, и вы перейдете из разряда сотрясателей воздуха в ряды уважаемых и небедных людей.
Можно Перл Харбор, простите за неэтичность, но ведь автор сам начал.
А это идея!
НЛО прилетело и опубликовало эту надпись здесь
Огромное спасибо за перевод!
s/МНОГРЯДНЫЙ/МНОГОРЯДНЫЙ на картинке.

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

А validator.w3.org для чего существует?

>>не скажут как должна выглядеть страница.
Они _не должны_ этого говорить. HTML — это язык семантической разметки, WYSIWYG для HTML — миф. Хабр, например, будет _правильно_ выглядеть в любом поддерживающем стандарты браузере но это не значит, что он будет выглядеть одинаково.

>>И документы эти МЕГАзапутывающие.
Они однозначно определяют стандарт.

>>отображается как надо в IE и Firefox
Другие браузеры тоже необходимо учитывать. Особенно на ресурсах с высокой посещаемостью гиками.

>>Нет никакого способа узнать - стандартный ли.
Способ есть. Валидатор. Если не обращать внимания на оформление, а только на семантику, то он выдает вполне объективные результаты. Сайт — не печатная публикация, он должен правильно выглядеть везде.

>>Затем вы обновились до IE8. И теперь половина из них перекошена, а Google Maps не работает вообще.

Неудивительно. IE8 еще не существует. Стандартные браузеры показывают GoogleMaps, несмотря на соответствие стандартам. Результаты WebKit в ACID3, надеюсь, все знают. Тем не менее, он нормально рендерит любой стандартный сайт, включая GoogleMaps.

>>Они хотят браузер, который работает с реальными сайтами.
Такой браузер уже есть. И он еще умеет корректно работать с последними стандартами. Правда, он не от MS.

>>Видите? Правильного ответа нет.
Правильный ответ: quirks mode для сайтов, которые браузер определил (на лету) как нестандартные. Остальные сайты рендерить в режиме соответствия стандартам. Больше ничего не надо. Отсутствующий doctype — первый сигнал для включения quirks mode.

>>Как обычно, идеалисты на 100% правы в принципах и, как обычно, прагматики правы на практике.
А разработчики нормальных движков используют оба варианта и автопереключение между ними.
Пока MS не сделает нормальный режим соответствия стандартам, IE не будет популярным браузером. В стандарты благодаря MS можно включить переключение в quirks mode при первой ошибке рендеринга.
Такое впечатление, что чтение [i]текста полностью[/i] не входит в круг ваших привычек.
Входит. Но весь текст — попытка оправдать IE несмотря ни на что. Есть браузеры, которые поддерживают стандарты без хаков в том количестве, которое используется в современном вебе. IE до этого уровня далеко. Когда IE будет проходить ACID2 без грязных хаков и пройдет acid3 хотя бы на 40-50 баллов, тогда можно говорить о том, как он поддерживает стандарты и что лучше, поддерживать новые стандарты или быть совместимым с кучей старых костылей. В IE8 предполагается введение еще одного костыля только из-за того, что он не может по-человечески работать. Его quirks mode идеален, особенно в старых версиях, но режима соответствия стандартам у него практически нет. Есть только очень неудачные попытки вроде IE8 в том виде, какой имеется сейчас.
Вообще-то, "причина введения еще одного костыля" очень хорошо описана в тексте, и она совсем не "не может по-человечески работать".
Костыль — мета-тег, переключающий режимы отображения. Очень много веб-разработчиков выразят свою благодарность за это. Переключение режимов — это хорошо, но не в таком виде. MS, как обычно, пытается сделать свой стандарт, «чуть отличающийся от остальных».
"Принцип надежности", они его слишком долго придерживались, чтобы теперь просты выключить. Да и привычка Майкрософт к многорядному рынку, а не многие-ко-многим, тоже дает свое знать.
Вы, простите, прикалываетесь? Преставьте себя разработчиком IE и предложите свой вариант действий - за исключением "всему Microsoft сделать харакири". Да, результат этих действий не должен приводить к неправильному отображению чертовой уймы сайтов в сети.

Стандарт, как вы могли бы заметить, не оговаривает деталей отображения страниц. Браузер может по умолчанию рендерить тэг h1 с полями в миллион пикселей и при этом быть совместимым со стандартами - только вот для пользователя это будет баг браузера.
Вариант действий: скопировать поведение, например, огнелиса =)
Конкретнее: реализовать поддержку последних стандартов, но не по дефолту (в принципе, так и задумывается, за исключением этого мета-тега и далеко не полной поддержкой по сравнению с тем же gecko, не говоря уже про webkit). И при этом не изобретать ничего своего. Все стандарты должны делаться w3c, а не MS. Сейчас же параллельно развиваются 2 стандарта. Если «стандарт» MS останется на том же уровне и не будет развиваться, то это будет вполне разумно и практично.
ЗЫ: харакири MS вполне может спровоцировать очередной мировой экономический кризис.

>Стандарт, как вы могли бы заметить, не оговаривает деталей отображения страниц.
Вот именно. Эти детали отображения — в стандарте CSS. Но это тема отдельного холивара.
НЛО прилетело и опубликовало эту надпись здесь
Этот самый Standarts compliance mode, к сожалению, бывает разным. В FF3 никаких хаков в нем не нужно, в отличии от самого распространенного альтернативного браузера.
>>Стандарт, как вы могли бы заметить, не оговаривает деталей отображения страниц.
>Вот именно. Эти детали отображения — в стандарте CSS. Но это тема отдельного холивара.

А кто сказал, что речь идет только о HTML? Стандарт CSS имеет такое же право на соблюдение браузерами, как и (X)HTML
Теперь опишите действия браузера при посещении страниц:
- с DOCTYPE, использующих нестандартное поведение IE <8
- c DOCTYPE, без хаков

Стандарт CSS тоже очень многого не оговаривает. Поле по умолчанию в 10e6 пикселей - полностью совместимо с HTML/CSS.
>- с DOCTYPE, использующих нестандартное поведение IE - c DOCTYPE, без хаков
Аналогично.
>Стандарт CSS тоже очень многого не оговаривает.
А что, IE умеет предотвращать подобную тупость? Стандарт — необходимый, но не достаточный элемент качественной работы. Я могу выложить на страницу пятигигабайтную картинку, причем никакой стандарт мне не запретит это. Для подобных вещей есть здравый смысл.
Одна из страниц будет отображаться неправильно. Объяснять, почему?

> Стандарт — необходимый, но не достаточный элемент качественной работы
Отлично. Т.е. вы согласны с тем, что рабочий браузер не может ориентироваться только на стандарты?
Если IE будет работать точно так же, как FF, то обе страницы будут корректно отображаться.
>рабочий браузер не может ориентироваться
только на стандарты?

Все программы для работы выполнения чертежей должны поддерживать ГОСТ, но на полностью ГОСТовом чертеже может быть полный бред. Это не означает, что без ГОСТ тоже можно работать. И не значит, что нужно добавить еще один стандарт, расширяющий ГОСТ. Тем более не значит, что его надо развивать. Максимум — поддерживать.
Понятно. Придется объяснять.

Сайт содержит хаки. Например - нестандартный CSS, выдаваемый через conditional comments. Например - нестандартный JS, выполняемый только при наличии document.all (или наличия в названии браузера строки MSIE).

FF эти хаки не получает. IE получает. Выполнение этого JS (или применение CSS) фиксит некорректное поведение старого браузера, но портит картину в новом. Ваши действия?
Отключить эти хаки вообще, дефствовать точно как другой браузер. Или при обнаружении этих хаков действовать _точно так же_ как и старый браузер. Вся проблема решена.
Вы мой пост не читали, да? Каким волшебным образом браузер должен узнать, что вот этот стиль (JS-код) - хак, а вот этот другой - не хак?
Ему и не надо узнавать. Если есть что-либо, предполагающее наличие IE (любой хак), то определенно предполагается, что старый IE на это отреагирует. Новый может либо проигнорить этот хак (хак — все, что не понимают остальные браузеры, так понятнее?), тогда ему от IE нужно только название, движок должен быть полностью переработан; либо эмулировать старую версию. При этом решении не понадобятся дополнительные усилия веб-разработчиков, не понадобятся новые теги и новые костыли для IE.
ЗЫ: если есть хак, проверяющий наличие IE, то очевидно. что сайт кроссбраузерный, и его можно отрендерить неродным для IE способом. От этого и стоит отталкиваться. Никакого переделывания стандартов и/или кода.
Вы меня нервируете. Я прекрасно понимаю, что такое хак. Более того, я сам разрабатывал с нуля движок HTML-рендеринга, поэтому не надо мне пытаться объяснять такие вещи.

Я пытаюсь донести до вас тот факт, что:
1) есть большой набор сайтов, которые выдают специфический (валидный) код специально для IE.
2) отличить этот код от нормального нельзя
3) (1) + (2) -> пипец верстке при использовании IE8 без режима совместимости
жош
отличить какраз можно.
если ие 8 проигнорирует conditional comments, скажет джаваскрипту что никакого document.all у него нет, обработает НОРМАЛЬНО * html и проигнорирует хаки типа _width то он может смело рендерить страницу по стандартам.
в таком случае никакие "старые костыли для ие" ничего не поломают, т.к. попросту не сработают.

но одна беда - некоторое количество страниц которые были сделаны для ИЕ-only (всякие хитрые внутрикорпоративные в том числе) перестанут корректно работать.
для них-то и нужен режим совместимости со старыми ИЕ-браузерами.
как отличить их, для каких именно страниц включать режим совместимости - вот это вопрос.
Порой используются хаки, которые по поведению объекта A определяет что это ie (ну потому что он есть только в ie, работает правильно и не имеет отношения к стандартам), потом начинаем править часть страницы под ie (это же точно ie), причем сам ie при этом для отображения этой части не использует объект A.
В таком случае выход по вашему - это переписать полность рабочий A (изменяя еще и интерфейс работы с ним), назвать его B (при этом веб программерам надо будет учиться еще и с этим B работать). И это при том, что в других браузерах есть аналогичные C, D и т.д. которые нельзя использовать в ie (даже новой версии), т.к. кто то использует хаки вида - если работает C (или D, или...) то это не ie. Да, поверьте, не все пишут хаки для того, что бы подправить что то под ie, кто то пишет изначально под ie, а потом правит под другие ;)
Может тада вообще искуственный интелект встроить в браузер, чтобы он смотрел код страницы и сообщал отрисовывающему движку - вот это хак, а вот это не хак. Как вы предлагаете отличать эти хаки он нормального кода страницы?
+1, только зачем код страницы!?
отрендерил в буфер, посмотрел на результат экспертным взглядом, определил что "поплыло" а что есть "плод дизайна" и исходя из этих соображений либо показал либо перерендерил :D
Если в IE8 в режиме соответствия стандартам не будет поддержки любых нестандартных вещей, поддерживаемых предыдущими IE и позволяющих идентифицировать IE как IE (будь то условные комментарии, наличие объекта document.all и проч.), то IE8 в плане совместимости с существующими страницами становится в один ряд с любым альтернативным браузером, а ситуация — совсем не катастрофической.
НЛО прилетело и опубликовало эту надпись здесь
ActiveX непосредственного отношения к вёрстке не имеет. Что касается document.all, то Firefox, например, в целях совместимости его тоже поддерживает, однако делает это грамотно — доступ к элементам через document.all работает, но проверка существования объекта document.all, используемая для идентификации IE, не проходит. В IE8 вполне можно сделать так же.
НЛО прилетело и опубликовало эту надпись здесь
По-моему, вы ошибаетесь. Проверка существования нестандартного объекта document.all (if (document.all)) всегда использовалась для идентификации IE, а история такова, что поддержка document.all была добавлена в Firefox (кажется, начиная с версии 1.5) именно с целью достижения совместимости с IE-only-скриптами, но с описанной выше особенностью — проверка существования объекта возвращает отрицательный результат.
НЛО прилетело и опубликовало эту надпись здесь
Представьте - вы крупный корпоративный пользователь с собственной внутренней системой, заточенной под IE - с ActiveX, нестандартной версткой и прочими прелестями. И тут наступает IE8 и пипец всему. Ваша реакция?
Добавляете заголовок ответа сервера или мета-элемент для включения режима совместимости с IE7, и никакого пипеца.
Т.е. используем вариант, который и предлагает Microsoft, не так ли?
Это решение для тех, кто не в состоянии самостоятельно привести сайт к правильному виду.
Далеко не все корпорации и частные лицы испытывают приятное возбуждение от перспективы приводить унаследованный сайт к правильному виду.

Более того, в таких случаях нередко некоторое раздражение, обрушивающееся на производителя браузера, которому "нехрен делать как плодить несовместимости между версиями".
Вот для них и существует простое «решение». ;-)
Угу, консенсус.
Извините, но MS раньше надо было думать. Ситуация напоминает пьяного водителя, которого остановило ГАИ и забрало права. Я думаю он покаеться тоже, когда уже будет поздно. ИМХО MS нужно было раньше начинать беспокоится о стандартах и поддержке, когда конкуренция со стороны браузеров была не такой сильной, ведь ИЕ6 вышел достаточно давнои время было достаточно.
Сравниваем год появления IE, скажем версии 4 и год появления стандартов HTML 4 / CSS 2.1?
А теперь сравниваем год предполагаемого появления ие8 и год появления стандарта хтмл 2.0.
От этого тоже никакой пользы, как и от вашего сравнения. Что мешало микросовтам поддерживать стандарты, существовавшие в момент разработки соответствующих версий ие? Вот то-то и оно.
Обратная совместимость?
Как-как? Обратная совместимость с чем? Не думали? С предыдущей версией, которая тоже не следовала стандартам. А что помешало сделать предыдущую версию соответствующую существующим на "предыдущий момент" стандартам? Во-во. Оно самое. Ие делался не для людей, а для денег. Поэтому ему ничто не поможет и он должен умереть (маздай). Весь этот "плач Ярославны" - не более чем крокодиловы слёзы. Странно, что Спольски оправдывается именно таким образом, да ещё и с привлечением "недокументированых функций" - ах, мы сделали следующую версию кривой, поскольку создатели программ для предыдущей версии пользовались недокументироваными функциями. Такое ощущение, что эти недокументированые функции всроили в их венду те самые марсиане. Сами ведь встроили. Для того, чтобы иметь недобросовестное преимущество. Теперь плачут. Ни какой жалости - маздай и точка.
Кстати, у них есть достаточно очевидный ход - прибить проект ие и сделать новый браузер. Без хаков.
Понятно, что на это они не пойдут. Потому что жлобы. Продукты свои выпускают не для людей, а для денег :(. Маздай :).
А ведь есть отличный пример - яблочники. Не раз менявшие и твёрдую и мягкую платформы.
Какие-какие, вы говорите, стандарты были в момент появления IE4 - IE5?

> Кстати, у них есть достаточно очевидный ход - прибить проект ие и сделать новый браузер. Без хаков.
Ага, давайте пошлём нафиг всех клиентов, которые уже наделали всякой хрени под IE, и будем все в белом.

> Продукты свои выпускают не для людей, а для денег
Батенька, вы не в курсе, что в реальном мире продукты именно для этого и выпускаются? В том числе и OpenSource.
>Какие-какие, вы говорите, стандарты были в момент появления IE4 - IE5?
Какие-то были. Я не помню годов выхода этих, с позволения сказать, продуктов, я помню время, когда ие вообще небыло. А стандарты, как ни удивительно, уже были. Какие-то :).
>Ага, давайте пошлём нафиг всех клиентов, которые уже наделали всякой хрени под IE, и будем все в белом.
Ну и пусть те, кто наделал хрени так и продолжают использовать свои ИЕ. Остальные будут пользоваться новым браузером. В чём проблема?
>Батенька, вы не в курсе, что в реальном мире продукты именно для этого и выпускаются?
Ок. Переформулирую. Выпускают только для денег. Многие другие ещё и для людей. А некоторые и только для людей. Отнюдь не все разработчики такие жлобы и барыги, как миркосовты.
> Какие-то были. Я не помню годов выхода этих, с позволения сказать, продуктов, я помню время, когда ие вообще небыло. А стандарты, как ни удивительно, уже были. Какие-то.

Так поинтересуйтесь - узнаете много нового и непривычного.

> Ну и пусть те, кто наделал хрени так и продолжают использовать свои ИЕ. Остальные будут пользоваться новым браузером. В чём проблема?

Те, кому плевать на совместимость с IE, уже могут пользоваться Firefox. IE нужен только из-за его наследия - причём нужен не Microsoft, а пользователям.
Вы бы ещё ИЕ3 вспомнили. А как получилось тогда, что FF(кодонаследница Netscape между прочем, основного конкурента MS в прошлом), имея такой же багаж прошлого как и конкурент, всё-таки в ладах со стандартами? Или это Netscape надавила на разработчиков стандартов, чтобы они признали их модель поведения корректной. Как-то слабо вериться. Думаю, что стандарты какие-то были.
Не забывайте, что перед воскрешением NN в облике FF, NN пришлось предварительно стать мертвой браузерной тушкой. MS IE не может себе этого позволить, потому что его место займет, ну... какая-нибудь опера ;-)
Текст ни в коей мере не оправдывает ИЕ, а просто дает объективную оценку ситуации - которая несколько сложнее чем "плохой ИЕ и хорошие стандарты"

>>В IE8 предполагается введение еще одного костыля
Первая бетта ИЕ8 как раз таки работает без костылей, и как результат все сайты с хаками под ИЕ в ней кособочатся.
>>Первая бетта ИЕ8 как раз таки работает без костылей, и как результат все сайты с хаками под ИЕ в ней кособочатся.

Это все к тому, что думать надо не только разработчикам браузеров, но и разработчикам сайтов. Думать на перспективу, и не привязываться ЖЕСТКО к конкретному браузеру и его версии. Ведь если есть баг, для которого нужен воркэраунд, то нужно написать тест для обнаружения бага, и только в том случае если тест показывает наличие бага - делать необходимые танцы с бубном. А не так, как это делает большинство - если ie6 делай это, если ie7 делай то. Что еще хуще "если ie делай так". Потому сайты и сыпятся, ломаются и т.д. И это проблема не только ie, но и других браузеров.
"Почему то" мои сложные веб-приложения (300+кб js кода) работают без проблем в ie8 (если не брать пару-тройку незначительных проблем с версткой), без ошибок и как надо. Секрет успеха в том, что используются микро-тесты для обнаружения проблем браузера, а никак ни его название и версия. В IE8 эти тесты показывают, что бага нет и все работает в обычном режиме, как и в остальных браузерах, и даже некоторые фишки, которые раньше не работали (например Data URL) начинают работать, без какого-то ни было дополнительного кода.
Сейчас у MS хорошая тенденция, будем надеяться что она сохранится и для большинства случаев можно будет поставить "if version of ie < 8 ..." и забыть про это, как про страшный сон.
Это просто продолжение спора :) Неоспоримый факт - нету ни одного браузера, поддерживающего стандарты на 100%.
Однако, по результатам acid3, уже есть браузеры, претендующие на это. Да, acid3 — не идеальный тест на стандарты, но все же сравнение разных движков дает повод задуматься. Особенно над 12%+вылетом IE6 и не слишком выдающеимся результатом IE7. С выходом ie8 вряд ли ситуация кардинально изменится.
Чуваки, вас понесло не в ту степь. Речь идет не о стандартах. Речь о том, что сегодня в вебе существует туева хуча страниц с хаками IE6/7. Вопрос состоит в том, кто их будет править под IE8?

Ответ: никто. Надеюсь, понятно почему? Если нет - перечитайте перевод еще раз.
ага, и поэтому давайте в один ряд поставим браузер держущий их на 90% и браузер, который на 10%
Это какой же браузер (из распространенных) на 10% стандарты-то держит? ;)
links? %)
Хе-хе. Я подозреваю, что уж большую-то часть HTML он разбирает, так что процентов 30-40% будет :-P
так и знал что кто-нибудь придерется, я вообще гипотетически, про марсианские браузеры
Так не надо передергивать - даже гипотетически.
отличная статья. спасибо за перевод. жаль, что всё так и есть.

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

может быть эталонный браузер от w3c поможет миру?
Нашему миру уже ничего не поможет :)
Amaya не помогает. Неюзабельно в реальном мире^Wвебе. Как инструмент веб-девелопера довольно полезная вещь.
>более-менее одновременный переход основных популярных браузеров к жесткой поддержке стандартов

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

так может быть как раз старые версии браузеров и будут тем периодом "обката". кто хочет жить в мире стандартов и всего современного, тот использует новые браузеры и надменно смотрит на сайты "старой школы". тот, кому важна совместимость сейчас, использует старые браузеры.

а за этот период "обката" следящие за своими ресурсами девелоперы должны позаботиться о переходе к вебу по стандартам.

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

ps. утопию же этой идеи я вижу в нежелании разработчиков браузеров работать совместно. как всегда найдётся один, кто оставит поддержку quirks mode, дабы подняться на фоне других, которые будут жестко следовать стандартам.
"девелоперы должны позаботиться", к сожалению, не получится. позаботиться за "чистоту стандартов и прекрасный мир" должны будут владельцы ресурсов. И "позаботиться", в данном случае, означает вложения в чей-то каприз (пусть и массовый). Для некоторых — нехилые вложения. Т.е. это просто нереально, "один, кто оставит поддержку quirks mode" всегда будет, хорошо это или плохо...
НЛО прилетело и опубликовало эту надпись здесь
согласен. все надежды только на референсные библиотеки от разработчиков стандартов.
По-моему, прекрасная статья с отличными аналогиями.
Мне напоминает все это мысль о том, что даже отрицая философию, ты создаешь свою, новую философию.
Как эта статья поможет разрешить текущие вопросы?
она не помогает решить вопросы, она объясняет причину их возникновения. а понимание это путь к прощению :D
Отрицание холивара есть холивар. А выход-то какой?
НЛО прилетело и опубликовало эту надпись здесь
o_O ? А где благодарность за перевод?
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Вы если хотите перевод подсказать - пожалуйста. А если просто языком потрепать - так и скажите, я не буду близко к сердцу принимать.
НЛО прилетело и опубликовало эту надпись здесь
Я подумал что вы транслитерировали robustness. Надо было сразу писать для непонятливый ибо постичь ваши гениальные посты я иногда просто неосиливаю.
К тому же по значению они весьма сходны, хотя в русском и не одно и то же, но в английском - одно слово. Что еще раз подчеркивает сходность.
Менять тотально не буду. Статья и так пестрит большим количеством информации. А смысл, как я уже написал, близок. Но ссылку поставлю. Спасибо.
НЛО прилетело и опубликовало эту надпись здесь
Я читать в состоянии, спасибо за заботу.
НЛО прилетело и опубликовало эту надпись здесь
Ппц дебильный коммент.
статья восхитительная, использованы донельзя понятные аналогии и метафоры, к тому же очень лихо ввернута отсылка к Vista :) огромная благодарность переводчику, и большое уважение автору статьи!
omfg! автор демон! имхо, статью следует читать вдумчиво всем «идеалистам»

Как обычно, идеалисты на 100% правы в принципах и, как обычно, прагматики правы на практике.


золотые слова, жаль что идеалистам сложно это объяснить, ибо
ТЫ СДЕЛАЛ ОШИБКУ И ТВОЙ САЙТ ДОЛЖЕН СЛОМАТЬСЯ!



посмотреть профиль smartov, огромное спасибо за перевод!
На практике используют нечто среднее.
>>Команда IE8 сейчас в процессе принятия решения, которое лежит идеально точно и ровнехонько на той самой линии, что разделяет два разных пути видения мира.
Проблема в том, что появляются новые костыли, увеличивающие несовместимость двух стандартов: MS и w3c, хотя можно обойтись и без них.
У меня такое ощущение что автор пытается оправдать IE
Автор пытается объяснить позицию Microsoft вообще и команды IE в частности в вопросе о стандартах. Имхо, на текущий момент единственный выход для IE8 - включать совместимость с IE7 по-умолчанию. Так и будет. Ибо в противном случае не будет IE8 ;-)
Ну вот ребята из IE и съели. Вроде бы и стандарты хочется поддерживать, но в тоже время и от своего наследия отказаться не могут. Это и говорит, что путь был тупиковый. Отсюда и эти варианты, описаные в статье.

Статья превосходная. Спасибо.
Это не "тупиковый путь". Это "обратная совместимость".
Обратная совместимость: сделать так, чтобы при обнаружении костылей все работало так, как было задумано.
Тупиковый путь: сделать необходимыми старые костыли и добавить к ним новые.
Разница: тупиковый путь приводит к вечному созданию костылей.
"идеалисты на 100% правы в принципах"
НЛО прилетело и опубликовало эту надпись здесь
А что является причиной той самой "обратной совместимости"? Ведь спецификация HTML и CSS не поменялась. Игнорирование стандартов как таковых. Почему ни от кого из производителей более ли менее популярных браузеров не слышно, что им понадобится ввести режим совместимости со старым? Потому что есть стандарты, по которым они работали и продолжают. Они исправляют ошибки, а не делают режим совместимости со сделанными.
А вообще не вижу другого варианта для IE, им придется сделать "режим обратной совместимости" со всем, что они написали до этого или продолжать в том же духе. Но радуют даже попытки.
Сравниваем год появления IE, скажем версии 4 и год появления стандартов HTML 4 / CSS 2.1?

> Почему ни от кого из производителей более ли менее популярных браузеров не слышно, что им понадобится ввести режим совместимости со старым?

Это потому что вы не интересовались. В интернете есть неплохая статья от разработчиков Firefox, непосредственно связанная с этим вопросом.

(Да и настоящую-то популярность альтернативные браузеры приобрели буквально вчера. А пока нет популярности, вопрос обратной совместимости не стоит).
не пугайте человека такой древней историей. вполне достаточно посмотреть на даты выхода IE6 и последних изменений в HTML. как-то так получается что даже IE6 (который все считают причиной всех бед) вышел до окончательных(?) стандартов...
Для того, чтобы описания стандартов были максимально полны и понятны разработчикам браузеров и сайтов, неоходимо не только читать документацию, но и иметь эффективную обратную связь с людьми, которые эти самые стандарты определяют. Эта обратная связь как минимум будет являться серезным мотиватором для переработки и перевода документации в язык, понятный людям. В противном случае неточная или даже ошибочная трактовка тонких мест просто неизбежна. Да, это огромный труд, требующий большой отдачи, но только этот путь является единственно верным и сулит в перспективе создание действительно валидных програмных продуктов.
Если у нас будет четкое, ясное и согласованное описание стандартов, то и решение проблем совестимости будет лишь вопросом времени. Новые продукты будут созаваться валидными, старые же постепенно отмирать. Спустя какое-то время режим совместимости с ie7, ie6, ie5 (продолжите сами) будет уже не актуальным и будет ликвидирован.
Задача эта не из области фантастики. Все реализуемо, было бы желание и голова на плечах.
Хорошая статья. Сравнения с ВОВ конечно ни к чему, но все же... статья хорошая, смысла спорить нет, примеры тоже хорошие.

Все верстальщики ненавидят IE - это факт. Но жаль что не многие верят в его светлое будущее(которого может и не будет), не верят и не хотят верить. они кричат "ставьте фф и точка", "IE был есть и будет злом", - итд итп... Они не пытаются понять смысл и суть статьи, они будут кричать: "Но ведь есть валидатор!!!", - не зная и половины стандартов. А тому чего не знаешь следовать сложновато. Будут писать хаки для IE и, матерясь, получать удовольствие от того что таки этот хак сработал и теперь страничка везде корректно отображается. Но проблема этим не решится. В Микрософте вроде как всерьез решили взяться за стандарты, но и это никого почему-то не радует. Не верят =)
И нет идеального браузера. И не будет, пока не будет идеальных стандартов, а их нет и не будет.

Время расставит все на свои места. И разработчиков сайтов и разработчиков браузеров и разработчиков и блюстителей стандартов.
>Все верстальщики ненавидят IE - это факт.
+1
>Но жаль что не многие верят в его светлое будущее
Не будет светлого будущего. MS просто так никогда ничего не сделает. Если MS нужно добавить костыли, то костыли будут добавлены. Были бы причины, повод найдется. А веская причина есть: сохранение монополизма. Способ один: делать немного отличающиеся от стандартов вещи. Такие, которым не очень сложно обучиться, которые просто пропиарить и которые убьют совместимость со стандартами. Сначала в мелочах, потом во всем остальном.
>получать удовольствие от того что таки этот хак сработал и теперь страничка везде корректно отображается
Не везде. Другие браузеры тоже существуют. И трата времени на IE = меньшая трата времени на стандарты.
>В Микрософте вроде как всерьез решили взяться за стандарты
Ключевые слова «Вроде как». Прочитайте спецификацию OOXML, сравните ее объем с ODF (стандарт ISO), усилия по проталкиванию OOXML в стандарты, а также неполноту спецификаций (ссылаются на неполные (несмотря на открытие) спецификации старых форматов). Никто и не будет верить. Стандартизация принесет убытки MS. Поэтому никакой стандартизации не будет. Будет только пиар.
>И не будет, пока не будет идеальных стандартов
Вместо того, чтобы делать велосипед, стоит сделать существующий стандарт идеальным.
>Время расставит все на свои места.
Расставят люди с течением времени. Веб-девелоперы. А как они расставят, зависит не от совершенства технологических решений, а от грамотного пиара.

ЗЫ: где мои минусы?
>Прочитайте спецификацию OOXML, сравните ее объем с ODF (стандарт ISO)
А давайте (раз Open Document Foundation сдохла) придумаем новый стандарт Free Source Document Format и учтём ошибки других форматов. В спецификации будет написано примерно следующее "Вы берёте свой документ и кладёте его в .fsdf файл." (Непоминает "стандарт" ODF)
>ссылаются на неполные (несмотря на открытие) спецификации старых форматов
Ну это вам просто мозги промыли. Советую исследовать вопрос самостоятельно, а не хавать что дают.
>раз Open Document Foundation сдохла
ну и? http://www.nixp.ru/news/8755
>придумаем новый стандарт
Free Source? Абсолютно новый термин… Что он означает?
Зачем нужен новый стандарт, когда можно исправить ошибки (если они есть) в имеющемся?
>учтём ошибки других форматов
И повторим их? В форматах особых ошибок нет, и ODF, и OOXML нормально работают. В OOXML есть определенные минусы, но это не ошибки.
Free Source - это то как должно называться то, что красноглазые пиарщики неправильно называют Open Source. Free - это не просто "не Closed", а ещё и тот, который можно бесплатно брать и изменять. Чтобы запутать людей и привлечь на свою сторону больше людей, которые не особо задумываются об этих тонкостях, пиарщики решили переименовать де-факто Free Source Software в Open Source Software нарушая Closed=!Open.
>Зачем нужен новый стандарт, когда можно исправить ошибки (если они есть) в имеющемся?
Чтобы показать вам эффективный и гибкий "свободный формат", у которого ещё меньший объём спецификации. В ODF стандарте написано что-то вроде "а вотв этом теге пишите формулу, находящуюся в ячейке". Про формат - ни слова. Почему бы не расширить это на весь документ? Тогда спецификацию можно вообще до одной страницы сохранить. Я так понимаю, Вам это очень понравится: компактная простая спецификация, поддерживаются документы ODF.
>>учтём ошибки других форматов
Ну например "FSDF" позволит хранить презентации и письма.. (или что там ODF стандарт не поддерживал?)
Гениальная статья, не просто о браузерах, а вообще обо всем на свете.
Совсем забыл: "Спасибо" =)
Статья отличная. Вот только что: ключевой момент - в большинстве случаев это не сайты написаны с ошибками, просто на сайтайх есть хаки вида "if броузер IE то подсунуть ему костылированный код". И IE8 работающему по стандартам такой код будет конечно не по зубам. Выход - отказаться от выпуска IE8 и выпустить скажем MS Browser или windows net viewer ver. 1.0 короче говоря речь о замене идентификатора, чтоб будущему браузеру сайты не подсовывали нестандартный код, чтоб отдавали ему тот же код который отдают огнелису и опере.

И еще вопрос у меня возник а что делать с ie-only технологиями. Например, "Создание объектов XMLHTTP" "Создание объектов XMLDOM" Отказаться? Но что делать разработчика сайтов на этих технологиях, есть в стандартах достойная альтернатива? И сколько денег понадобится компаниям на переделку таких страниц (а это возможно довольно сложные сервисы). Или не отказываться и дальше ругаться с "идеалистами".
Хотел написать подобный комментарий, но вовремя заметил ваш. Действительно, MS могла бы отречься от дурной наследственности. Помешали, надо думать, Большие Меркетинговые Соображения. Об этом в статье умалчивается, сама же статья имеет тон плаксивого самопожертвования: »что мы могли поделать, кругом враги, ночь и страшно, а на нас Груз Ответственности.«
ну outlook express без особых проблем превратился в windows mail кажется маркетинг от этого не пострадал:)
сравнмвать outlook express с IE не корректно. слишком многое завязано на IE и почти ничего на outlook express (на полноценный outlook гораздо больше, но на то он и не_экспресс ;)
что именно завязано на IE с точки зрения маркетинга? Это для обычного юзера (постебителя маркетингового продукта) просто стандартный встроенный просмотрщик инета, также как OE стандартный встроенный почтовик.
Вы действительно думаете, что большинство сайтов не содержит ошибок? :-D
я сделал вывод из статьи, а так я не знаю :-D
Отпостил и только потом заметил, что ты предлагаешь тоже что я ) Плюсанул бы да не могу ))
НЛО прилетело и опубликовало эту надпись здесь
> Кстати, по-моему, именно IE — по иронии судьбы единственный браузер, использующий валидирующий XML-парсер (вот только кому от этого легче…:).
Да, как ни странно. Но они долго к этому шли, изобретая велосипеды по пути, пока не пришли обратно к стандартам. Кстати, в FF так же не замечено особых проблем с XML, чего нельзя сказать про Opera и Safari (хотя в последнем могло что-то поменяться в финальном релизе).
FF - это убийца XML. Проблемы в нём уже мнооооооооого лет и фиксить их не будут. Проприетарный движок, чего с него взять...
Отличнейший текст, великолепно!
Спасибо переводчику и автору.
Все версии IE с которыми мне довелось работать (под которые довелось извращенно верстать изначально красивый код) - полны просто ошибок, а не каких то разночтений неясных стандартов.
Обвинять тех кто поддерживает стандарты в том, что Майкрософт не сможет продать очередную версию браузера (поддерживающую стандарты) из-за того, что в старых версиях было полно ошибок - это очень оригинальный ход.

Если говорить о принципе либеральности, то, замечу еще один момент - все браузеры допускали множество ошибок в свое время, но, почему-то они (иключая семейство осликов) на сегодняшний день на голову больше соответствуют стандартам и, что БОЛЕЕ ВАЖНО, соответствуют друг другу (верстка, как правило, делается под семейство осликов и ВСЕ ОСТАЛЬНЫЕ браузеры). Где была команда IE с их штатом и бюджетом (коммерческий продукт все-таки)?

P.s. Как верстальщик, могу сказать и жестче - IE говно, какие бы тонны доводов кто не приводил.
Ничуть с вами не споря, замечу, что у других браузеров было раньше поле для маневра. Когда имеешь 1% пользователей нет ничего такого, чтобы в новой версии переделать движок, исправить ошибку, и ничего что теперь блок стоит на месте (по стандарту), а не как раньше на 17 px левее.
Когда же у тебя 95% рынка, то подобные скачки могут закончиться плачевно. MS как бы сами себя в заложниках имели с этим процентом рынка. Думаю Майкрософт нужно сказать спасибо Лисе за то, что избавила от части рынка и дала возможность экспериментировать и менять.
О том и речь, что Майкрософт САМИ создали такую идиотскую ситуацию. Им и надо искать выход, причем, мне кажется, если это будет выход не в сторону поддержки стандартов, то они лишь выроют себе более глубокую яму.
интересно... а кто им мешал её создавать!? я таких не помню... NN конечно хорошо, но как оказалось - недостаточно хорошо. Опера? ну, если бы денег не просили изначально, то может и была бы тогда (много лет назад) конкуренция.

а так рынок броузеров достался MS почти без боя, и только потом, когда всё устаканилось, интеренет начал набирать обороты и рынок стал выглядеть еще вкуснее чем раньше, на него повылазили другие игроки...

ратовали бы за стандарты в конце 90-х, таких бы проблем сейчас не было бы. да только некому было в те года за стандарты глотку рвать. зато теперь визжат так, как будто отрабатывают "прогулы" :D

З.Ы.: имхо, они не создавали, а оказались. кое-какие усилия они и сами приложили к этому результату, но говорить что нынешняя ситуация целиком вина MS неправильно.
Ребята, пиная Мелкософт, вы как-то напрочь забываете об одном факте: не MS первыми начала пичкать HTML кастомными решениями, а Netscape со своими layout. И, помнится, в 2000 году все жутко не любили и хаяли Netscape Navigator из-за его тормознутости и багов в рендеринге HTML, единственной альтернативой которому был IE4.

Беда Мелкософта состоит в том, что им эту кашу теперь надо как-то расхлебывать. В отличие от Netscape, которого нет ;-)
> И, помнится, в 2000 году все жутко не любили и хаяли Netscape Navigator из-за его тормознутости и багов в рендеринге HTML, единственной альтернативой которому был IE4.
В 99-м был IE5, в 2000-м IE5.5, в 2001 - IE6.
А так вы правы :)
>Где была команда IE с их штатом и бюджетом
А какой у них штат и бюджет? Что-то мне кажется, что после выхода IE6 их лет 5 послали работать официантами в столовой, пока делать нечего.
Обратите внимание что только в посленее время с появлением Web 2.0, MS наконец то снизошли до люде и начали шевелиться. А статья эта похожа на крик души автора - "Хватит нас пинать, мы уже просто не знаем что нам делать".

А вот на счет "что делать", в чем пробема оставить браузер IE7 в поке, а IE8 заставить представляться не IE8, а как нибудь по другому (SuperPuperMegaBrowser)? Разве это не станет безболезненым лекарством? Или я просто чтото недопонял?
Не все хаки используют информацию о названии браузера, поэтому простая смена названия, к сожалению, не поможет.
НЛО прилетело и опубликовало эту надпись здесь
Простите, но разве сейчас не такая ситуация:
...
...
Фиксы для IE6 и ниже, противопоказаны IE7 и наоборот. Так что появление IE8 не должно особо сказаться на сайте. А если вы используете , то у вас и в IE7 должно было все поехать.
порезались теги :(
Простите, но разве сейчас не такая ситуация:
<!--[if lt IE 7]>...<![endif]-->
<!--[if IE 7]>...<![endif]-->

Фиксы для IE6 и ниже, противопоказаны IE7 и наоборот. Так что появление IE8 не должно особо сказаться на сайте. А если вы используете <!--[if IE[>, то у вас и в IE7 должно было все поехать.
НЛО прилетело и опубликовало эту надпись здесь
А по поводу "Хаков" с чистой совестью можно сказать, что разработчики сами виноваты =) Ведь во всех учебниках (статьях и т.д.) по html и css написано что их использование не желательно. Ну вот и нарвуться на свои же грабли, если уже не нарвались.
Пока читал статью, пришёл ровно к такому же выводу. Просто отказаться от гиблого наследия IE, и начать с нуля, только как можно ближе к стандартам. Тогда страницы, которые не ломаются в других бразуерах (FF, WebKit, Opera), будут отображаться и в новом браузере от MS.

И решение действительно простое — на уровне изменения одной строчки кода.

А назвать его можно хоть Web Explorer, лишь бы только с предками не путали :)
А если взять наиболее распространенную реализацию рендеринга страниц как стандарт (допустим, IE) и попытаться привести остальные браузеры к общему знаменателю?
На примере языков. Есть стандарт русского языка (как набор символов (алфавит) и правил составления слов и предложений) и он используется в России. Но уже, скажем, в Японии, русский язык не поддерживается абсолютным большинством населения, он просто не является стандартом для этой страны. Упрощение перемещения между странами создало проблему взаимодействия между людьми, говорящими на разных языках, как следствие - необходимость введения некоторого "общепринятого стандарта". Мне известны два интернациональных языка - это английский (пусть в нашем примере им станет IE, как наиболее распростаненный) и эсперанто (стандарты w3c), который "не пошел" так активно, как английский. Владение английским никак не отражается на взаимодействии людей со "своим" языком, но упрощает общение с "другими".
Здесь полно грабель, понимаю. Например, как дать браузеру понять, что все отличия, встречаемые в теле документа, принадлежат именно ему. Это можно сделать, указав возможные варианты отступления от "стандарта", иными словами: Браузер: "эта разметка не отвечает введенному стандарту, для кого она может быть предназначена?" Документ:"Для ФФ". Создание некоего "правила" (еще не стандарта) уже шаг. Постепенно, шлифуя края, можно прийти к модели "японским я не владею, но уж по-английски все могут". В принципе, acid как раз и должен явиться этим правилом, но браузеры его еще не держат. В то время как де-факто все верстают под IE.
P.s. Я не утверждаю, что правилом должна стать именно кривая IE'шная реализация :-)
НЛО прилетело и опубликовало эту надпись здесь
Странно. Такая крутая статья, и так мало балов...
+1
Ещё есть вариант дешевле. Сам Майкрософт может признать поражение IE и в момент обновления поставить пользователю IE8 со своей оболочкой, но рендеререром стороннего разработчика — Firefox, Opera, Safari. То есть браузер даже формально сможет называться IE8, однако сайты будут рендериться движком Gecko, KHTML или Opera (возможно даже по выбору пользователя).

Этот совершенно невероятный шаг одним махом решит проблему совместимости с хаками и не слишком старыми сайтами (которых подавляющее большинство).

PS Понимаю, что решение не соломоново, но при определенных недостатках проблему появления стандартности купирует наименее болезненным и для потребителя и для разработчика методом.
В IE главное не оболочка. Почему вы думаете она столь ограничена? Потому что MS плохие? Или потому что все хотят урвать кусок хлеба и подают в антимонопольный комитет со словами "у них очень хороший дефолтный браузер, заставьте убрать его"?

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

P.S. Я считаю что сейчас MS идёт правильным путём...
Правильным - это каким?
Вы совершенно не поняли о чём я написал. Движок IE (htmlengine) вычленяется легко. Этим пользуются например в Макстоне. Вы же не кричите на них за это? В данный момент сам Майкрософт вышел с инициативой поддержки стандартов. Но именно потому, что их движок по прежнему опознается сайтами как IE на многих сайтах где дизайн IE поддерживается хаками этот движок будет спорным ещё долго. А если сам IE станет многодвижковым то этой проблемы не будет. Причём это даже не скажется на остальных частях IE (я про интеграцию со службами винды)
Подумалось.
MS может сделать базу сайтов, сделанных по стандартам. Веб-разработчики могут добавить свой сайт в эту базу.
При каждом заходе на новый сайт, IE8 будет посылать запрос на сервер. Если приходит ответ, что сайт должен отображаться по стандартам - браузер так и работает. Если сайта в базе нет - IE8 действует как считает нужным.

Мощностей для этого у MS достаточно. И обмен данными тут гораздо проще и по объёму меньше, чем в том же Google Suggest.
Гениальнейшая идея: база данных о всех сайтах, посещенных юзерами, никогда не помешает такой крупной компании, как MS. Возможности доставки контекстной рекламы и прочих не слишком веселых вещей безграничны.
Не посещаемых, именно как инструмент для вебмастера ;)
Хотя, конечно ничего не мешает MS считать количество обращений к доменам. Всё равно, пользы больше будет :)
Чует мое сердце, статья станет канонической, и отсылки на нее войдут в FAQ и RTFM-ы всего мира :)
НЛО прилетело и опубликовало эту надпись здесь
Вся эта ситуация демонстрирует грабли которые были созданы потребителям за их же деньги. Микрософт явно показал в деле Айова против Микрософт, что специально портил поддержку стандартов и он продолжает ее портить.

Решение хорошее на практике, только временно выглядит таковым. Оно еще и еще раз будет бить потребителей пыльным мешком, потому что не сняли серферов с иглы плохо написаных сайтов. Поэтому попытка назавать принятие по дефолту стиля IE7 - правельными "на практике" - это просто игра словами. Это плохое решение. И практически и идеалогически. И оно обйдется потребителям в сотни тысяч долларов в долгосрочной перспективе. Вот тебе и практичный трейдоф - огромные деньги против "выучить как нажать кнопку - перейти в режим совместимости".

Эта статья под видом троянсокго коня примирения и снижения градуса дискуссии просто призывает смирится с ошибкой, которую допускали уже сотни раз и часто допускали намеряно. AmaroK слез с кривых MP3-тегов и всех заставил! И Web должен через это пройти!
Приветствую. А вам не кажется что потребителям дороже обойдется то, что куча пользователей просто начнут заваливать службы поддержки с жалобами, что сайт не работает. Потеряют кучи посетителей. И все равно потеряют деньги, только уже в гораздо более краткосрочной перспективе. Что хуже. Тут как с кредитом - вы платите больше но дольше, или все но прямо сейчас. Обычно выбирают первое, т.к. заплатить прямо сейчас не у всех есть деньги.

Что же до Амарока - то очень многие отказались от него из-за этого финта ушами. Если бы он предоставил средство прозрачной конвертации кодировок - то еще было бы другое дело. А для новичка выискивать средства, бороться со скриптами на питоне или глючным EasyTag нету никакого удовольствия. Ему бы музычки... И он включает kaffeine.
Что лучше: потерять немного сразу или потерять много, но в перспективе? Хотя теряют все кроме MS. Никакой кучи посетителей никто не потеряет. Если Windows один раз покажет BSoD, никто в здравом уме не сменит ее нав что-либо еще только по этой причине. Если Windows будет слегка глючить каждый день, то пользователей убавится.
ЗЫ: проще один раз разобраться с тегами, чем включать kaffeine или искать патченный амарок. Смысл: разбираться 1 раз вместо всплытия этой проблемы в будущем еще 10 раз (плеер часто меняется).
Не знаю что лучше. Сами решите что: к вам придут и опишут имущество выбросив на улицу, или будут забирать 10 лет по 500 рублей от зарплаты? Каждый сам решает. Этот вопрос тоже из разряда идеалисты-прагматики.
Но, при этом 60% людей таки перевели свою музыку на ютф8:)

Или взять тот же ФФ, почти с каждой новой версией у него отваливается половина екстеншнов, и ни о какой обратной совместимости никто не думает. И ничего, народ терпит, разработчики переписывают расширения, и все рады:)
Потому что под FF "обычные пользователи" еще не перешли, а "гикам" (да, мне тоже) новые свистелки и перделки интереснее отсутствия проблем при апгрейде.
Перевели. 60% тех кто сидел под Амарок. Остальной же куче людей эта проблема вообще неведома :) Юзают какой-нибудь Winamp или AIMP или даже WMP под Виндой - и все работает нормально.

Что до Лисы - то неправда, народ не терпит. то очень четко видно сразу после выхода релиза. Если бы производители расширений не делали поддержку новых версий, уже настал бы Гитлер капут. За что хвала им и честь. Но..., расширений сотни, популярных - десятки.

А страниц миллиарды. И не все, как верно замечает Спольски, можно поправить. Разработчики некоторых страниц уже мертвы. Куча страниц были сделаны одноразово под заказ и работают без поддержки.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
И нет в мире ни одной веб-девелоперской конторы в которой можно было бы заказать "апгрейд" верстки под IE8.

да, да, да! в мире есть куча владельцев сайтов обремененных лишними деньгами, готовых потратить эти излишки в пользу «одной веб-девелоперской конторы»
НЛО прилетело и опубликовало эту надпись здесь
Я знаю, в прошлом ничего поменять нельзя. Но вот Сафари поддерживает стандарты, и не задается подобными попросами. Почему? Потому что с самого начала это был… более-менее правильный браузер.

Это я к чему. Майкрософт сами себя загнали в ту жопу, где они сейчас.
НЛО прилетело и опубликовало эту надпись здесь
Мы можем поговорить об операционных системах.

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

Эппл поддерживает идеалистический подход. Но на старте отсутствие обратной совместимости почти сгубило компанию. Не только это, но тем не менее.

Сейчас отчетливо видно какой подход и когда сработал лучше.
НЛО прилетело и опубликовало эту надпись здесь
Маки тоже переходили с ИЕ на Сафари. Вроде нормально.

А тут, выходит, проблема в том, что название сохраняется, и всякие комментарии «только для ИЕ» тоже продолжают работать. Может в эту сторону подумать?
Мне кажется что компромиса быть не должно. Т.е. человечество должно принять решение и распараллелить реальность на "старые сайты" и "новые", и если "новые" будут глючить по каким-то причинам, то искать эти причины нужно в них самих. Конечно, для этого потребуется эталон. Ну и кто возьмется?
Знаете, у меня есть идея:

1. Все Веб-Студии мира официально заявляют, что они не верстают сайты под IE.
2. Все фрилансеры не берутся за верстку под IE.
3. Сгружаем все веб-сервера на свалку, обливаем бензином и устаиваем шабаш, провозглашая эру нового веба без IE.

;-)
Все с точностью наоборот. Надо отказываться от любых хаков и фишек отдельных браузеров. Если есть любые хаки на страничке, то рассматривать такой сайт как "старый". Постепенно можно уйти от технологии наприсания "чего-то" в блокноте с активным использованием отладчиков. Потому-что маразм, писать программы и интерфейсы на авось.
Попробуйте как таким способом пописать проги например для PS3, это же смешно. А чем разработчики сайтов такие особенные? С моей точки зрения, правильно что программа B, не работает под Vista, потому что нефиг использовать технологии которые были придуманы 10 лет назад, и мало того работающие исключительно за счет "недогляда" разработчиков ОС, а таскать за собой вагон и маленькую тележку заплаток для обеспечения совместимости, считаю крайней степенью расточительности. Пусть лучше будет multiboot какой-нибудь.
Большинсво сайтов сделано по принципу "Hello, World!", методом научного тыка, а не по каким-то правилам и документации. Вот тогда могут появится серезные IDE для веб. Сейчас же, это наборы шаблонов с кнопочками, и шаблоны каждый клепает как ему вздумается.
Я к сожалению "старой закалки" и не по наслышке знаю что такое ассемблер. Почему-то не возникало желания думать так: "а вот например в этот регистр сначала положу а потом в этот, и если у меня компилятор не заругается, то можем считать что программа рабочая".
Ой, чота меня в 2-то ночи понесло :)
Да-да! И пусть браузеры не отображают сайты, в которых есть хотя бы одно несоответствие стандарту! (Жизнь без веба - это прекрасно. Вспомним о NNTP, например).
Причем здесь это? Сайты будут прекрасно отображаться, и старые и новые.
Просто если мы пишем в заголовке "standart" то хватит тащить за собой эмуляцию старых глюков. и обрабатывать это должен новый движок, который только выиграет в быстродействии, в ущерб возможно надежности. Т.е. если я заверив браузер, что код, который он будет обрабатывать соответствует некому стандарту, он враве залупится на конструкциии /
Собственно об этом и речь, только очень неуверенно, т.к. в итоге, какое-то время, всем будет плохо. Зато потом хорошо. и ввести понятие версии стандарта, чтобы при следующем апгрейде интернета, не пришлось заново обо всем договариватся.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
офигенная самокритика ;-)
НЛО прилетело и опубликовало эту надпись здесь
Это имеет какое-то отношение к его профессионализму?
В любом случае мир должен двигаться и прогрессировать, а выше упомянутый ИЕ только тормозит этот прогресс. Сколько много новых технологий, и идей можно было бы воплотить в жизнь если бы ИЕ шел в ногу со временем, много возможностей Javascript и в том числе CSS обычный веб разработчик не может применять к своим проектам только из-за ИЕ, причем в остальных браузерах (ФФ, Опера, Сафари) все отлично работает. Я считаю что нужно принимать какие то кардинальные решения по этому поводу, и перестать топтаться вокруг багов и ошибок ИЕ6, ИЕ7.
знаешь, я бы с радостью перестал, только вот большинство обычных пользователей всё равно пользуется Интернет-экслорером и никуда от этого не денешься. А какие кардинальные решения есть на уме?
Этот пост был больше адресован не к веб-разработчика, а к разработчикам ИЕ... Точнее это были просто мысли в слух :)
А по поводу кардинальных решений, я считаю что при разработки ИЕ8 надо больше отталкиваться не от того что когда то Микрософт выпустил ИЕ6,7, и все сайты писали отдельный код для семейства осликов, а отталкиваться от стандартов. Как кто то писал выше, пускай будут старые сайт, но ведь появятся и новые которые будут сделаны по стандартам, и без всяких хаков для ИЕ, и тогда это будет плюс к прогрессу.
А обратную совместимость похерим, ага?
про марсиан прикольно
Спасибо заменил. У меня была такая идея, включая просматривание и замену всех ссылок на википедию на русские. Но перевод занял 4 вечера и уже не было никаких сил.
Самым правильным решением мне видится изменение стандарта html, введением в него нового тега, например или что-нибудь в таком духе. Поставил такой тег - поисковики типа гугла дадут тебе пару очков при поиске, но все броузеры не будут применять к сайту никаких исключений и будут жестко применять к нему стандарт, всегда.
простите, а разве не это было предложено изначально?!
И первое решение озвученное командой IE 21 января было именно таким. Веб браузер должен был бесшовно поддерживать старые страницы.

кратко идея первого варианта тут

или Вы таким образом просто поддерживаете разработчиков IE в их первом варианте решения проблемы?

вот только гугль при этом ничего никому не даст :D
Очень длинные и подробные рассуждения о том, почему же IE не полностью поддерживает стандартны, однако, не являются оправданием тому, что многое в ИЕ реализовано откровенно наплевательски, например, поддержка xHTML.

Вы видели "старые, заточенные под IE6, сайты", которые бы отдавали content-type: xhtml+xml и которые хорошо отображались в ИЕ старых версий и которые - какой ужас - "разъедутся", если открыть их в браузере, соответствующем стандартам? Я не видел. И вы, думаю, тоже.

Однако из-за неспособности понять, что же такое xhtml, большинство свёрстанных в этом стандарте сайтов вынуждены отдавать text/html ради убогого ИЕ. Это не стремление к совместимости, это злоупотребление лидерством.

SVG? PNG вот аж в седьмой версии нормально поддерживаться стал, но сколько лет этому формату?

Почему странички с объявленным DOCTYPE должны обрабатываться в каком-то "нестандартном" режиме? Вот уж их-то как раз писали ярые поклонники стандартов, по крайней мере, наличие этого тега - объективная претензия на соответствие W3C. Тёма Лебедев, ярко выраженный "реалист", не указывает этот тег в своих сайтах. Его любимая фраза - "лучший валидатор - это браузер". Ради него и его сайтов можно оставить совместимость со старыми костылями, если в страничке нет DOCTYPE. Остальным сказать: "взялся за гуж - твои проблемы", что, вообще-то, правильно.

Ну ладно, для самых убогих сделать кнопку "игнорировать DOCTYPE". Вынести на панель инструментов, сделать большой и заметной, и выводить в Tip of the day сообщение: "Знаете ли вы, что отображение некоторых старых сайтов можно улучшить, нажав эту кнопку?".

Ну разве в этом есть что-то сложное?

Вердикт: прочитанному верить на одну десятую. Доля правды в тексте есть. Но не всё, отнюдь.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Кстати о <!-- [if IE
Недавно постил новость на сайте. По лени великой решил не перебивать док-файл в HTML, как обычно, а воспользовался онлайн WYSIWYG редактором.
Работал в файрфоксе. Скопировал из ворда, вставил в редактор, чуть подбил. Всё ништяк.
В файрфоксе!
В ИЕ 7 же конструкции "<!-- [if IE итп" отобразились как есть, не посчитались комментариями.

Это так, камень в сторону заточек под ИЕ.
По-моему это совершенно ненормальный процесс — заточка под браузер. Нормальный процесс, это когда сайт работает во всех браузерах (без хаков и ухищрений) и последующие версии браузера исправно интерпретируют страницу, но вдобавок ещё могут интерпретировать какие-то новые свойства и конструкции (соответствующие более современным стандартам).

То есть писать стандарт. Если де-факто какая-то часть его не исполняется вовсе или исполняется иначе, то менять стандарт. Мало ли, вдруг создатели браузера придумали классную фишку, которая полезна, нравится профессионалам, но в стандарте её нет. Значит надо стандартизировать.

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

Как пример — окраска скроллбара в ИЕ. Опера это фишку поддерживает опционально. И совершенно правильно, потому что одни считают скроллбар частью окна браузера, другие — частью страницы, а третьи делают скролл в textarea и хотят, чтобы он не выбивался из стиля сайта.
НЛО прилетело и опубликовало эту надпись здесь
> спокойно доработать свои страницы.
Вы действительно думаете, что сколько-нибудь крупные компании так и подкладываются под производителей браузеров?
При прочтении пришла одна мысль - сайты, заточенные хаками под старых "ослов", не будут работать под новым? Так давайте назовем его "лошадью" (User-Agent: Horse). В итоге проверяющий JavaScript не сработает, хаки не подцепятся и (в идеале, опять конечно) получим рендер под "некий очень стандартный браузер". Вот только так ли это хорошо, как думается на первый взгляд? Непоняятно..
А если JS проверяет наличие IE-специфичных функций или объектов?
законы не совершенны поэтому можно их не соблюдать?
Законы неоднозначны, поэтому все их соблюдают как бог на душу положит.
Поэтому их все трактуют по своему.
Хорошо раскрыта проблема.
Однако же!

Стандарты не везде гладкие ввиду сложности, но там где всё понятно и кристалльно чисто — извольте соответствовать. Получится такой «подстандарт», то есть выборка однозначных правил, которой нужно соответствовать. Вот этот самый подстадндарт и надо закрепить. Остальные вещи перерабатывать/заменять.

Соответственно одни будут писать в рамках «подстандарта», другие пользоваться расширениями и внимательно следить за изменениями, постоянно редактируя сайты. Третьи же будут не только пользоваться подстандартами, но и расшрять разнообразие приёмов по мере расширения «подстандарта» (по мере того, как неточные правила перерабатываются и превращаются в точные и однозначные).
> другие пользоваться расширениями и внимательно следить за изменениями, постоянно редактируя сайты.
Уже смешно.
«И чтобы те разработчики, которые не могут понять что значит "быть консервативным в том, что делаешь" не смогли бы публиковать свои странички, пока они не будут соответствовать стандарту.

Но, конечно, если бы случилось так, то наверное у веба никогда бы не было такого взлета»

Чушь несусветная. Если бы так было, то во-первых веб был бы куда чище, во-вторых профессиональный уровень создателей страничек был бы выше, в-третьих никто никого не заставляет пользваться всеми возможностями и функциями. Многим вообще по сути ничегошеньки такого особенного не нужно. Достаточно <h1>—<h4>, <p>, <img>, <br>, <ul>/<ol>, <i>, <b> ну и ещё пары-тройки тегов. И при таком раскладе сделать страницу, соответствующую стандартам не составило бы труда.
Чушь несусветная у Вас. Если бы так было, как Вы описываете, весь веб сегодня бы сводился к 3-4 игрокам, вроде AT&T, Compuserve, Sun, MS. Вы, видимо, просто не застали времена "до веба" и не видели "того интернета".
Дааа, какое было бы несчастие, если бы вебом занимались только профессионалы, а остальные стремились стать профессионалами! Ужасное несчастье было бы, просто-таки ужасающее…
Будем отталкиваться от реальности. У нас есть стандарт "как оно должно быть" и несколько псевдостандартов "де факто", заточенных под IE 7, 6, 5... Netscape и другие браузеры. Ситуация напоминает разнообразие браузерных кодировок.

Что на самом деле нужно пользователю, так это:
1) возможность переключения кодировки/стандарта, в которых следует отображать сайт (скажем, с помощью кнопок на панели);
2) возможность сохранения этих настроек в браузере, т.е. если юзер уже определил, что http://www.mustdie.com был разработан для IE7, а кодировка в нем на самом деле KOI-8, то браузер должен эти настройки где-то помнить и во второй раз открывать автоматически.

Проблема IE не в том, что он что-то криво отображает, а в том, что он не дает пользователю этим управлять (переключать User-Agent, отключать скрипты и т. д.). Это все равно что плеер с двумя кнопками - Play и Stop. Пользователям уже давно нужен гораздо более расширенный функционал.

Пользователь должен знать, что если он нарвался на сайт с кривым лейаутом, то эта проблема решается одним нажатием кнопки, после чего она ему досаждать не будет. Равно как и левая реклама. Сам функционал браузера должен поддерживать различные настройки для различных сайтов: в одном бегающие и всплывающие окна - это полезный элемент интерфейса, а в другом - отвлекающая рекламная муть, которую нужно жечь на уровне парсера входящего HTML. Вот что нужно браузеру - возможность преобразовать поступающую информацию, в том числе и автоматически на основе ее источника или других свойств, еще до отображения.
Это все равно что плеер с двумя кнопками - Play и Stop.

а потом опять иски с обвинеиями в том что выпуская хороший броузер MS давит мелких игроков...
это не основание как раз. Выпустят хороший браузер — будет чудесно. Я только ЗА. Я даже за то, чтобы сайты работали в ИЕ лучше (ну там новые возможности из стандартов реализовывались). Это ещё более подстегнёт развитие веба и браузеров.
НЛО прилетело и опубликовало эту надпись здесь
>Купить, например оперу...

Купили же Mosaic. И вот в какое уродство он выродился :)
>и сделать свою обертку как сафари...
Сафари..? Это тот браузер, который не мог отобразить сайт apple.com?
НЛО прилетело и опубликовало эту надпись здесь
Этот перевод Джоэля - охуенен, простите за выражение.
Лучшая статья на хабре за ... очень долгий период.

Спасибо!
Спасибо. На счет лучшей статьи ничего не скажу - это общественность решает. А с переводом, да - попотел.
если б было меньше криворуких верстальшиков что "верстают на div'ах" и не имеют ни малейшего представления ни о том что означает float ("а почему нет float: center"?..) ни о hasLayout (а почему в FF всё разлезлось?) было бы не так плохо.

quirsk mode позволял сделать ровный сайт даже школьнику, вёрстка таблицами нетребовала и нетребует особых знаний.

а потом (ужастная вещь) толпы этих школьников и ещё хуже взрослых дядей (никогдане открывавших стандарты) бросились лабать сайты без таблиц проверяя под любимый ими (не надо ля-ля) IE6.
И ставя костыли типы html>body для FF.

Первый раз им по голове хорошо стукнул IE7.
за использование небезопастных хаков, вместо conditiona comments, за кашу в коде и голове.

теперь выйдет 8-ка...

поначалу я был за режим рендеринга как в 7. просто потому что куча сайтов поразваливается...
с другой стороны - реально старые сайты (на таблицах ещё) - они как рисовались в quirsk mode так и будут рисоваться.
а уродцы с 10-ти кратно вложенными дивами (зато без таблиц!) может заставят выгнать под зад с рынка разработки тех, кто верстать не умеет.

а фирмы с такими сайтами имеют возможность исправить всё одной строчкой meta-тэга (слава m$)

вот и всё.
а плохому верстальщику IE5 мешает.
Десятикратно вложенный DIV на порядок хуже десятикратно вложенной таблицы, ага.
да, на порядок хуже
потому что такое вкладывание div'ов друг в друга означает что верстальщик неимеет понятия ни о семантике ни о вёрстке. он просто заменил td на div, понаставил кучу float: left и думает что молодец.

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

Давно пора понять, что никакие стандарты не смогут ограничить криворукость. Но могут ограничить приток криворуких в сферу веб-строя
вы абсолютно правы коллега!
Хрен редьки не слаще; однако (по моему мнению, конечно) изменить созданный альтернативно одаренным верстальщиком код проще всё-таки в случае дивов.
НЛО прилетело и опубликовало эту надпись здесь
И то и то плохо, потому что нормальный верстальщик сто раз подумает как этого избежать и обойдётся дву- или трекратным вложением :) Покажите мне пример необходимости вложить div в div или таблицу в таблицу хотя бы 5 раз.
блестящий перевод. спасибо
Читаю развивающуюся дискуссию и думаю, что я за ужесточение стандартов. И пусть валятся сайты, которые свёрстаны криво.

А ещё я за цензуру на радио и телевидении (культурную, а не политическую).
Интернет создан не для программистов и верстальщиков, а для пользователей. Которым похрен, какой сейчас на дворе год и какой стандарт сейчас в моде, но не похрен, что половина сайтов после обновления браузера разъехалась.

Это как дворники вдруг бы заявлили, что-де "не фиг тут мести, пусть эти засранцы в мусоре потонут".
странная логика: идти на поводу у людей, допускающих ошибки
и про доктайп странное дивно написали - помоему, если у человека книжка, откуда он перепечатал strict доктайп, явно, что он хотя бы догадывается зачем он нужен?
подумалось - W3C тоже кончно отжигает по полной с этой тягомотиной в принятии новых версий...
и про доктайп странное дивно написали - помоему, если у человека книжка, откуда он перепечатал strict доктайп, явно, что он хотя бы догадывается зачем он нужен?

за него dreamweaver проставил :D и книжек у него нету
НЛО прилетело и опубликовало эту надпись здесь
А ты посмотри как IE отреагирует, например, на пробел между td и img с доктайпом и без него.
По стандартам пробел между ними должен быть невидимым. С доктайпом это так и есть, без него - не так. Там много поведения IE6 становится стандартным и тем самым уменьшает количество головной боли.
НЛО прилетело и опубликовало эту надпись здесь
доктайп? ну на мой взгляд - переключение режима отображения браузером на "более w3c-шный" через доктайп была довольно удачная идея, как сейчас, так и остается на данный момент. очень яркий показатель того, как сделан документ. если человек дошел до вставки доктайпа, значит что-то о режимах отображения браузерами (кросс-браузерности) он знает, и готов в этом направлении дальше развиватm своё детище
НЛО прилетело и опубликовало эту надпись здесь
а чем оно стало разным?
я не помню что бы испытывал каких-то труднойстей с 7 версией, наоборот стало полегче дышать и анекдотов про zoom 1 и height стали уже не такие смешные
НЛО прилетело и опубликовало эту надпись здесь
вот вот, про что я и говорю
сейчас только с 6 версией гемор, с 7й практически без хаков работаю
У меня есть компромисная идйка:

Что если IE8 в основном режиме в navigator.appName не возвращать страшных слов "Internet Explorer", а возвращать что-нибудь менее Ужасное, например "MSIE".

В результате все хаки, заточенные под словосочетание "Internet Explorer", будут продолжать работать в старых "прагматичных" IE, а в новом восьмом IE либо сработает втроенная защита от неизвестного бразуера, либо начнется работа "по стандартам", которую большинство опытных разработчиков делает по умолчанию.
Ага, и код, проверяющий на существование свойства, скажем, style.filter, увидев строку MSIE перепугается и перестанет работать?
Правильно, перепугается и начнет использовать в режиме совместимости со стандартами свойство style.opacity

IE8 ведь поддерживает подобные стандарты?
Еще раз: код не знает, что есть IE8; он знает, что если браузер поддерживает style.filter, надо скормить ему какую-то хрень.
Проверять браузер на IE через style.filter - это подход по микрософтовски (через одно место). Нелогично и неожиданно, как с дворниками во время снега.

Нормально написанный код тестирует style.filter и если он поддерживается, то использует style.filter, а если нет, то использует (или тестирует) стандартный style.opacity. В худшем случае код просто использует оба свойства сразу.

НЕнормально написанный код, конечно, можно вылечить только полной эмуляцией браузера, под который он заточен, т.к. ни на чем другом он работать не станет. По моему мнению владельцы сайтов с таким кодом окажутся сами виноваты, что пожадничали на хороших специалистах. И станут платить дважды.
Да какая разница - через style.filter, document.all или fireEvent? Главное что код, компенсирующий якобы некорректное поведение будет скормлен браузеру, этим некорректным поведением не страдающему.
Спольски, как обычно, мыслит глубоко и объясняет доступно.
Статья отличная, перевод удачный.
Многие мои мысли и сомнения в области внедрения и использования веб-стандартов полностью совпадают с мнением автора.
> Йчнякрооооглдел
Понравилось :)

А вообще статья вполне в духе Джоела - пусть и субъективно, но ОЧЕНЬ похоже на обьективную правду.
НЛО прилетело и опубликовало эту надпись здесь
Кто писал о стандартах?
Бросьте, плиз ссылку на CSS и HTML стандарты... :)
Спорим об вкусе устриц.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории