О браузерах и стандартах. Марсианские наушники

http://www.joelonsoftware.com/items/2008/03/17.html
  • Перевод
Приготовтесь, сейчас вы увидите предтечу всех священных войн на ресурсах, где зависают веб-разработчики. Перл Харбор по сравнению с этим покажется тем случаем на семейном чаепитии у бабушки, когда ваша сводная сестра в гневе выбежала из комнаты и поцеловала Мустангом дерево во дворе.

Предстоящая битва будет проходить под председательством Дена Хашамовича, ветерана Майкрософт, который сейчас возглавляет команду, готовящую вам Интернет Эксплорер 8.0. Команда IE8 сейчас в процессе принятия решения, которое лежит идеально точно и ровнехонько на той самой линии, что разделяет два разных пути видения мира.

Это граница между «консерваторами» и «либералами». Это граница между «идеалистами» и «реалистами». Это огромный глобальный джихад, разделяющий членов одной семьи, настраивающий инженеров против компьютерных спецов и Лексусы против оливковых деревьев.

И хотя решения проблемы нет, будет очень, очень интересно наблюдать, потому что 99% участников священных войн даже не трудятся разобраться, о чем они, вообще, спорят. И в то же время это не просто развлечение: это «обязательная программа» для каждого разработчика, который хочет создавать приложения, способные взаимодействовать с чем то ещё, кроме самих себя.

Священная война будет эскалироваться вокруг чего-то, называемого «веб-стандарты». Позволим Дену представить нам проблему:
Все браузеры имеют режим «Стандарты», его называют «Режим стандартов» и используют для того, чтобы получить наилучшую возможную реализацию стандартов браузером. Каждая версия каждого браузера имеет свой Режим стандартов, потому что каждая версия каждого браузера совершенствует свою поддержку стандартов. Есть режим стандартов Сафари 3, Режим стандартов Файерфокс 2, Режим стандартов IE6 и Режим стандартов IE7 — они разные. Мы хотим сделать так, чтобы Режим стандартов IE8 стал гораздо, гораздо лучше, чем был в IE7.

И вся проблема состоит из одного маленького решения — что именно должен делать IE8, когда наткнется на страничку, которая рапортует о поддержке стандартов, но, скорее всего, тестировалась только под IE7.

Что вообще, черт подери, такое эти стандарты?

Разве нету стандартов у всех видов инженерных разработок? (Есть)
Разве они не применяются везде? (Э-э-э… м...)

Почему «веб стандарты» так чертовски путаны? (И это не только вина Майкрософт, но и ваша вина тоже. И Джона Постела (1943-1998). Объясню позже.)

Решения нет. Любое решение будет чудовищно неверным. Эрик Бэнгман в Артс Техника пишет: «Команде IE приходится балансировать на тонкой грани между поддержкой W3C стандартов и поддержкой старых сайтов, написанных для старых версий IE». Но он не прав. Грань не тонкая. Ее ширина просто отрицательна. Балансировать негде. Их будут ругать как за поддержку одного так и за поддержку другого.

Вот почему я не могу принять ничью сторону в этой проблеме, да и не собираюсь. Но каждый разработчик программного обеспечения должен узнать, по крайней мере, как стандарты работают и как стандарты должны работать, а так же то, как мы завязались в этот гордиев узел. Я хочу немного прояснить эту проблему и тогда вы увидите, что это та же самая проблема, по которой Windows Vista так плохо продается, и та же проблема, о которой я писал, затрагивая тему противостояния Лагеря Реймонда Чена (прагматики) против Лагеря МСДН (идеалисты) в компании Майкрософт. Победил Лагерь МСДН и теперь уже никто не может понять куда делись их любимые пункты меню в Microsoft Office 2007. А еще никто не хочет Висту. И все это один и тот же спор: Идеалист ты («красный») или Прагматик («синий»).

Но давайте начнем с начала — подумаем как заставить вещи взаимодействовать.

Какие вещи? Да любые, на самом деле. Карандаш и точилку. Телефон и АТС. Страницу HTML и браузер. Графическое приложение под Виндоус и саму операционную систему Виндоус. Фейсбук и приложения для Фейсбук. Стерео наушники и плееры.

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

Продолжим с помощью простого примера.

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

Вы понимаете, что это привлекательная возможность для бизнеса и начинаете продавать MP3 плееры (только на Марсе они называются Йчнякрооооглделы) со стерео наушниками. Чтобы подсоединять наушники к MP3 плееру вы изобрели изящный металлический штекер, который выглядит вот так:



Поскольку вы контролируете производство и плеера и наушников, вы можете быть уверены, что плеер работает с вашими наушниками. Это рынок вида ОДИН-К-ОДНОМУ. Один плеер, одни наушники.



Предположим вы написали документацию, ожидая что сторонние компании сделают наушники других цветов, посколько Марсиане очень щепетильны в выборе цвета того, что втыкают себе в уши.



И когда вы писали документацию вы забыли написать, что рабочее напряжение наушников должно быть 1.4 вольта. Ну просто забыли. И вот появляется первый вдохновленный производитель 100% совместимых наушников. Его наушники ожидают стандартных 0.014 вольт и когда он тестирует прототип, то у него взрываются либо наушники — либо барабанные перепонки слушателя — в зависимости что выдержит дольше. Он делает некоторые подстройки и методом тыка находит конфигурацию, в которой наушники работают нормально и всего на пару микродецибелов отличаются от ваших.

Со временем появляется все больше и больше производителей совместимых наушников и скоро мы получаем рынок типа ОДИН-КО-МНОГИМ



Пока все идет хорошо. У нас есть стандарт де-факто штекеров для наушников. Написанная документация неполная и неточная, но любой, кто захочет сделать совместимые наушники, может просто воткнуть их в ваш стерео плеер и если они работают, то все хорошо — их можно продавать и они будут работать…

Так до тех самых пор, пока вы не решите выпустить новый Йчнякрооооглдел 2.0.

В Йчнякрооооглдел 2.0 будет встроен телефон (да, и до мобильников Марсиане тоже не догадались) и наушники будут иметь микрофон, которому требуется еще один провод, так что вы перерабатываете штекер во что-то несовместимое и даже местами страшное, зато с кучей места для возможного расширения:



И Йчнякрооооглдел 2.0 постигает тотальный провал на рынке. Да, у него есть прикольная телефонная фича, только никто не отметил этого. Зато все дорожили своими коллекциями наушников. Оказывается тот факт, что Марсиане щепетильно относятся к тому, что втыкают себе в уши, гораздо серьёзнее, чем казалось сначала. И к этому моменту у каждого стильного марсианина есть полный ящик разнообразных наушников. Для вас они все одинаково красные, но Марсиане очень, очень изощренны в оттенках красного, настолько что вы и представить себе не можете. Современный высокотехнологичный дом на Марсе уже даже имеет стандартный ящик для наушников. Такого вы точно не ожидали.

Итак, новый штекер не имеет успеха. Поэтому вы быстренько придумываете новую схему:



Заметьте, что вы разделили основной стержень, чтобы подсоединить еще один провод для микрофона, однако проблема в том, что Йчнякрооооглдел 2.1 в общем-то не знает, есть ли в подключенной гарнитуре микрофон или нет, но ему нужно это знать, чтобы задействовать или отключить возможность телефонных звонков. Так что, вы пишете маленький протокол обмена… новая редакция устройства посылает сигнал на микрофон и смотрит не пришел ли он вместо этого на «землю»; если пришел — значит это просто наушники без микрофона, так что устройство переключается в режим обратной совместимости, в котором можно только проигрывать музыку.
Это просто, но в то же время это есть общение по протоколу.

И у нас уже не рынок ОДИН-КО-МНОГИМ.
Все стерео устройства производятся одной и той же фирмой, так что я назову его МНОГОРЯДНЫМ (SEQUENCE MANY) рынком:



Вот несколько МНОГОРЯДНЫХ рынков, которые вам уже известны:
1. Фейсбук | около 20 000 приложений для него
2. Виндоус | около 1 000 000 приложений
3. Майкрософт Ворд | около 1 000 000 000 документов

Есть сотни других примеров. Основная вещь, которую надо помнить — это как только выходит новая версия устройства с левой стороны, она должна поддерживать обратную совместимость со старыми аксессуарами справа, которые работали со старой версией, так как скорее всего, старые аксессуары не разрабатывались с запасом на следующую инкарнацию продукта. Все именно так, как с Марсианскими наушниками. Вы не можете вернуться во времени и заменить их все. Гораздо проще и гибче сделать новое устройство так, чтобы оно вело себя как старое устройство, когда используется со старыми наушниками.

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

Майкрософт всю свою сознательную жизнь провела на МНОГОРЯДНОМ рынке.

Но есть еще один виток — рынок МНОГИЕ-КО-МНОГИМ.

Проходит несколько лет. Вы продолжаете продавать Йчнякрооооглделы сумасшедшими темпами, но теперь на рынке много клонов Йчнякрооооглдела, например клон с открытыми исходниками ФайерЙчн, а так же целая куча наушников, и вы все проводите улучшения в конструкции, которые требуют изменения штекера и это сводит с ума производителей наушников, потому что им приходится тестировать свои продукты на каждом клоне Йчнякрооооглдела, что требует финансовых и временных затрат, да откровенно говоря у большинства из них просто не хватает времени и поэтому они проверяют их на самом популярном Йчнякрооооглдел 5.0, и если с ним работает — они счастливы; но само собой, если воткнуть такие наушники в ФайерЙчн 3.0 и подождать, то они взорвутся в руках из-за одного небольшого недоразумения в спецификациях относительно опции, которую, на самом деле, никто до конца не понимает, и зовется она hasLayout. Все просто знают, что когда идет дождь, то hasLayout равен true и напряжение должно увеличиться, чтобы заработали дворники на ветровом стекле. Но возникли споры — являются ли град и снег тоже дождем в применении к hasLayout, потому что в спецификациях это не уточнено. Команда разработчиков ФайерЙчн 3.0 считает снег дождем, потому что вам ведь нужны дворники при снеге, а разработчики Йчнякрооооглдел 5.0 — нет, потому что программист, который написал этот функционал живет в теплой части Марса где нету снега и вообще у него даже прав нету. Да, на Марсе тоже есть водительские права.

И вот какой-то зануда пишет длиннющую статью в своем блоге о том, как заставить Йчнякрооооглдел 5.0 вести себя в точности как ФайерЙчн 3.0, путем использования бага в Йчнякрооооглдел 5.0, из-за которого Йчнякрооооглдел думает, что идет дождь, если растопить немного снега. Звучит смехотворно, но все так и делают, чтобы разрешить несовместимость с hasLayout. Позже разработчики Йчнякрооооглдел правят этот баг в версии 6.0, и вы снова в растерянности, вам приходится искать новый баг, который можно эксплуатировать, чтобы заставить ваши наушники с дворниками работать с любым устройством.

И ТЕПЕРЬ..., теперь у нас рынок МНОГИЕ-КО-МНОГИМ. Много игроков с левой стороны, которые не сотрудничают, и КВИНТИЛЛИОНЫ с правой. И все они делают ошибки, потому что Человеку Свойственно Ошибаться.



И конечно же это та ситуация, которая сейчас сложилась с HTML. Десятки браузеров и буквально миллиарды веб-страниц.



И на протяжении всех лет существования рынка МНОГИЕ-КО-МНОГИМ постоянно слышатся крики и требования «стандартов», чтобы «все игроки» (имеется в виду маленькие игроки) имели равные шансы и возможности отображать все 8 миллиардов страниц правильно. И что еще более важно, чтобы разработчики тех самых 8 миллиардов страниц должны были тестировать только под одним браузером и благодаря «веб стандартам» могли бы быть уверены, что их страница будет работать так же и в других браузерах без необходимости тестирования в каждом отдельно.



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

Это идиллия.

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

Так что вам приходится «тестировать» в своей голове вспоминая кучу документов, описывающих стандарты, которые вы, наверное, никогда и не читали, а если и читали, то так до конца и не поняли.

И документы эти МЕГАзапутывающие. Спецификации полны фраз вроде: «Если дочерний контейнер (не плавающий и не абсолютно позиционированный) следует за бегущим, то бегущий блок становится первым внутренним блоком контейнера. Бегущий блок не может входить в контейнер, который уже включает в себя бегущий блок, или сам является бегущим.» Каждый раз как я это читаю я удивляюсь как вообще кто-то может правильно следовать спецификациям.

Не существует практического способа проверить следует ли та страница, что вы только что написали, стандартам. Да, есть валидаторы, но они вам не скажут как должна выглядеть страница. А в том, чтобы иметь страницу где текст налазит друг на друга и ничего не стоит ровно, но зато она «валидна», тоже мало толку. Так что, все что люди делают — это прогоняют свои страницы в одном, может двух браузерах, пока они не станут выглядеть нормально. И если они сделали ошибку, которая тем не менее отображается как надо в IE и Firefox, то им даже неинтересно будет знать про нее.

И есть немалая вероятность, что их страницы «поплывут» с выходом новых версий.

Если бы вы когда-нибудь посещали ультра-ортодоксальные еврейские общины в Иерусалиме, все члены которых поклялись в полнейшем соблюдении каждой йоты еврейского закона, то вы бы узнали что не взирая на общее согласие что является кошерной едой, вы не найдете ни одного раввина, который захотел бы отобедать у себя дома с раввином из другой ультра-правой общины. А в наши дни веб-разработчики открывают для себя то, что евреи из Меа Шеарим знали десятилетиями: то, что вы следуете одной книге вовсе не ведет к совместимости, потому что законы настолько объёмны, сложны и витиеваты, что практически невозможно понять их все в достаточной мере для того, чтобы избежать подводных камней.

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

Ядро проблемы в том, что вы думаете, что есть один стандарт, но так как никто не может реально протестировать на соответствие с ним, то стандарт этот — виртуальный: это платонический идеал и набор недоразумений, а следовательно такой стандарт не служит достижению желаемой цели — уменьшению матрицы тестирований на рынке МНОГИЕ-КО-МНОГИМ.

DOCTYPE это миф.

Обычный смертный, который включил DOCTYPE себе в страницу, приговаривая «это стандартный HTML» просто наслаждается сам собой. Нет никакого способа узнать — стандартный ли. И на самом они говорят то, что эта страница по идее должна быть стандартным HTML. А что они действительно знают, так это то, что они протестировали её в IE, Файерфокс, может быть Опере и Сафари, и она вроде бы работала. А может они вообще просто перепечатали DOCTYPE из книжки и понятия не имеют, что он значит.

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

Джон Постел в 1981 спровоцировал проблему сформулировав принцип надежности (точнее принцип робастности, но в виду близости понятий, здесь и далее будет «принцип надежности» — прим. перев.): «Будьте консервативны в том, что делаете, и будьте либеральны в том, что принимаете от других.» Этим он хотел сказать, что для того, чтобы сделать надежный протокол, нужно как можно точнее придерживаться спецификаций, и в то же время «прощать» тех партнеров, кто не следует спецификациям в точности. Прощать до тех пор, пока вы в состоянии понять, что они хотят сказать.

Так, для того, чтобы сделать параграф с маленьким текстом нужно написать <p><small>, но многие люди писали <small><p> что технически неверно (по причинам, которые большая часть веб разработчиков не понимают) но веб-браузеры «прощали» им и делали текст маленьким, потому что ясно, что именно этого люди и хотели добиться.

Теперь мы имеем в сети все эти страницы с ошибками, потому что все разработчики первых браузеров сделали супер-либеральные и дружелюбные программы, которые любили вас за то, какими вы есть и не особо огорчались, если вы сделаете ошибку. И вот у нас куча ошибок и оказывается принцип «надежности» Постела не сильно-то работает. На проблему не обращали внимание многие годы. Но в 2001 году Маршалл Роуз наконец-то написал:
Вопреки интуиции, Постеловский принцип надежности часто ведет к проблемам в развёртывании решений. Почему? Когда выходит новая реализация чего-то (например html страница — прим. пер.) то она сначала сталкивается только с ограниченным набором существующих реализаций (например браузеров — прим. пер.). И если эти реализации (браузеры) следуют «принципу надежности», то ошибки в новой реализации (странице) останутся необнаруженными. Процесс повторяется много раз, но рано или поздно новая не-совсем-корректная реализация (например страница со скрытыми ошибками — прим. пер.) попадет в менее либеральное окружение чем изначально. Что тогда произойдет объяснять не надо"

Нужно отдать должное Джону Постелу за все, что он сделал для развития Интернет, и действительно не стоит винить его за непопулярный принцип надежности. 1981 это уже как каменный век. Если бы Постел знал, что 90 миллионов людей, не являющихся специально подготовленными инженерами, будут создавать веб-сайты и делать все эти ужасные ошибки, а первые браузеры в виду какой-то невиданной щедрости будут прощать эти ошибки и все равно отображать страницу, он бы понял, что это неправильный принцип, и что на самом деле, идеалисты веб-стандартов правы, и веб должен был быть построен на очень, очень строгих стандартах и каждый браузер должен был быть серьёзно назойливым в требовании от вас этих стандартов. И чтобы те разработчики, которые не могут понять что значит «быть консервативным в том, что делаешь» не смогли бы публиковать свои странички, пока они не будут соответствовать стандарту.

Но, конечно, если бы случилось так, то наверное у веба никогда бы не было такого взлета, а мы бы, наверное использовали гигантскую сеть Lotus Notes под управлением AT&T.(Содрогнулся)

Да и вообще, если бы да кабы… мы там где мы есть. Какая уже разница. Мы не можем изменить прошлое, только будущее. Да и будущее то с трудом.

Если бы вы были прагматиком в команде Инетрнет Эксплорер 8.0, то в вашей памяти были бы выгравированы слова Реймонда Чена. Он писал о том, почему Windows XP приходится эмулировать ошибочное поведение старых версий Windows:
Посмотрите на это с точки зрения потребителя. Вы купили программы А, Б и В. Потом вы обновились до Windows XP. И теперь ваш компьютер стал беспричинно подвисать, а программа В не работает вообще. Вы скажете своим друзьям: «Не обновляйтесь до Windows XP. Она виснет, падает в синий экран, и несовместима с программой В». Вы же не будете запускать отладку, чтобы определить, что синие экраны вызывает программа А, а программа В не работает потому, что использует недокументированные сообщения окон. Вместо этого вы просто вернете Windows XP и потребуете назад деньги. (Вы купили программы А, Б и В уже очень давно, и 30-дневный период для возврата давно истек. Так что все, что вы можете вернуть — это Windows XP)

И вы думаете, хммм, давайте приведем к современным реалиям:
Посмотрите на это с точки зрения потребителя. Вы купили программы А, Б и В. Потом вы обновились до Windows XPVista. И теперь ваш компьютер стал беспричинно подвисать, а программа В не работает вообще. Вы скажете своим друзьям: «Не обновляйтесь до Windows XPVista. Она виснет, падает в синий экран, и несовместима с программой В». Вы же не будете запускать отладку, чтобы определить, что синие экраны вызывает программа А, а программа В не работает потому, что использует недокументированныенебезопасные сообщения окон. Вместо этого вы просто вернете Windows XPVista и потребуете назад деньги. (Вы купили программы А, Б и В уже очень давно, и 30-дневный период для возврата давно истек. Так что все, что вы можете вернуть — это Windows XPVista)

Победа идеалистов над прагматиками в Майкрософт, о которой я говорил в 2004, является прямой причиной того, что Vista плохо продается и имеет негативные обзоры.

А как это относится к команде IE?
Посмотрите на это с точки зрения потребителя. Вы посещаете 100 сайтов в день. Затем вы обновились до IE8. И теперь половина из них перекошена, а Google Maps не работает вообще.



Вы скажете своим друзьям: «Не обновляйтесь до IE8. В нем неправильно отображаются все странички, а Google Maps не работает вообще». Вы же не будете просматривать исходный код, чтобы определить, что сайт А использует нестандартный HTML, а Google Maps не работает потому, что использует нестандартные JavaScript объекты старых версий IE, которые так никогда и не были одобрены комитетом стандартов. Вместо этого вы просто удалите IE8. (Все эти сайты вне вашего контроля. Некоторые из них были сделаны людьми которые уже мертвы. Так что все, что вы можете сделать — это вернуться к IE7)

Итак, если вы разработчик в команде IE8, то первым, что придет вам в голову, будет сделать в точности так, как всегда работало на МНОГОРЯДНОМ рынке. Вы собираетесь сделать маленькое протокольное общение, и продолжать эмулировать старое глючное поведение для каждой страницы, которая не сообщила четко, что она ожидает нового поведения, так что все существующие страницы продолжат работать, и новое правильное поведение будет работать только для тех сайтов, которые поставили у себя специальный флаг, говорящий программе «Эй! Я знаток IE8! Снизойди на меня Благодатью IE8!».

И первое решение озвученное командой IE 21 января было именно таким. Веб браузер должен был бесшовно поддерживать старые страницы.

Прагматичный инженер сказал бы, что первое решение команды IE было правильным. Но молодые идеалисты «стандартов» затеяли войну.

IE должен предоставлять поведение «по стандартам» без специального «Эгей! Меня протестировали в IE8» — сказали они. Их тошнило от специальных тегов. Каждая чертова страница должна была иметь тридцать семь уродливых хаков, чтобы работать в пяти или шести популярных браузерах. Довольно уродливых хаков! Будьте вы прокляты 8 миллиардов страниц.

И команда IE сделала рокировку. Их второе решение (и надо думать не финальное) — это сделать идеалистическую вещь. По-умолчанию воспринимать все сайты, которые говорят что они «совместимы со стандартамим», как протестированные в IE8.

Почти все страницы, которые я посетил в IE8, были так или иначе сломаны. Сайты, на которых много JavaScript, вообще мертвы. У некоторых сайтов менее заметные проблемы: они выглядят нормально, но если продолжать, то окажется что какая-нибудь критичная форма не отсылается или ведет к пустой странице.

И это ошибки не страниц. Это обычные сайты, аккуратно построенные, чтобы следовать стандартам. Но ни IE 6 ни IE 7 в действительности не следуют стандартам, так то эти сайты включают в себя маленькие хаки, типа «В Интернет Эксплорере… подвинуть этот блок на 17 пикселей вправо, чтобы компенсировать ошибку в IE».

И IE 8 — это тоже IE, но у него больше нету бага, что был в IE 7, который двигал ту штуку на 17 пикселей влево от того места, где она должна была быть по стандартам. И теперь код, который был вполне оправданно написан, не работает.

IE 8 не в состоянии отобразить большинство страниц корректно, пока вы не сдадитесь и не нажмете «ЭМУЛИРОВАТЬ IE 7». Но идеалистам все равно — они считают что все эти страницы должны быть изменены.

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

Идеалисты ликовали. Сотни их выплеснулись в IE блоги, чтобы написать что-то хорошее о Майкрософт первый раз в жизни.

Я посмотрел на часы… Тик-тик-тик…

Делом секунд был подождать пока в форумах начнут появляться такие сообщения:
Я скачал IE 8 и глюки вместе с ним. Некоторые из моих сайтов, например домашняя страница, трудночитаемы и вся страничка очень маленькая… Скорость моего соединения тоже уменьшилась в некоторых случаях. Когда я использую Google Maps кругом накладывающиеся слои, и их очень трудно использовать!

Дааа… Все вы самодовольные идеалисты смеётесь над этим новичком. Но потребитель не идиот. Это может оказаться ваша жена. Так что перестаньте смеяться. 98% мира поставит IE 8 и скажет: «В нем ошибки — я не вижу своих страниц.» И они абсолютно не разделяют глупый религиозный энтузиазм по поводу выпуска веб-браузера, который строго следует мистическим, платоническим «стандартам» которые реально нигде не воплощены. Они не хотят слышать истории про кучу хаков. Они хотят браузер, который работает с реальными сайтами.

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

Лагерь веб стандартов похож на Троцкистов. Вы думаете что они — левое крыло, но если вы сделали веб-сайт, который говорит что поддерживает стандарты, но на самом деле нет — идеалисты превращаются в Джо Арпайо, самого жестокого шерифа Америки. «ТЫ СДЕЛАЛ ОШИБКУ И ТВОЙ САЙТ ДОЛЖЕН СЛОМАТЬСЯ! Мне плевать если 80% твоих сайтов перестанет работать. Я посажу тебя в тюрьму, где ты будешь носить розовую пижаму, есть сендвичи за 15 центов и работать на цепи. И мне плевать если вся страна окажется в тюрьме. Закон есть закон!»

С другой стороны — прагматичный, чувствительный, теплый белый и пушистый инженер. «Нельзя ли сделать режим IE7 режимом по-умолчанию?». Одна строчка кода… Вжик! Сделано!

Хотите секрет? Вот что я думаю произойдет. Команда IE8 скажет всем, что режим стандартов будет по умолчанию, и запустит долгое бета тестирование, на протяжении которого, будет просить всех протестировать их сайт в IE8 и попробовать заставить его заработать. А ближе к релизу, когда окажется, что только 32% всех страниц в мире отображаются корректно, они скажут «смотрите, нам очень жаль, мы действительно хотели чтобы режим стандартов стоял по-умолчанию, но мы не можем поставлять неработающий браузер» и вернутся к прагматичному решению. Или не вернутся, потому что прагматики в Майкрософт долго были не у дел. В этом случае IE потеряет большую часть рынка, что потешит идеалистов дальше некуда, и скорее всего не уменьшит годовую премию Дена Хашамовича ни на цент.

Видите? Правильного ответа нет.

Как обычно, идеалисты на 100% правы в принципах и, как обычно, прагматики правы на практике. Флейм будет продолжаться годами. Этот спор разделяет мир ровно надвое. Если у вас есть какой-нибудь способ купить акции Священных Войн Интернета, то сейчас самое время это сделать.
Метки:
Поделиться публикацией
Похожие публикации
Комментарии 248
  • –9
    Автор, вы участвовали в битве под Сталинградом?
    • +4
      Вопросы автору лучше задавать по-английски. Сделать это можно здесь.
      • –1
        не ожидал, что такое мог написать американец, хотя с их представлениями о ВОВ... меня подобные "писательские" аналогии коробят
        • 0
          Мне они тоже не нравятся, но перевод есть перевод. Пока не придумал чем аналогичным, но не режущим ухо русскому человеку, можно заменить Сталинград.
          Если предложите подходящее - с удовольствием поменяю.
          • 0
            высадка в Нормандии, Перлхарбор.
            за Сталинградскую битву потери СССР составили цифру то ли бОльшую, то ли сопоставимую со ВСЕМИ потерями американцев за ВСЮ войну.
            • НЛО прилетело и опубликовало эту надпись здесь
              • 0
                Знаете, в ПНВС была чудная фраза о неких "абсолютниках". По памяти: "Они считали что познание бесконечности требует бесконечного же времени. С этим никто не спорил. Но отсюда они делали неожиданный вывод: поэтому работай-не работай - все едино". "Делать очень простые сайты" - это все равно что вернуться в пещеры и радоваться убитому мамонту, бья себя пяткой в волосатую грудь... А реальная жисть как раз состоит из хождений по краю, нахождения компромиссов и прочей интересной мелочи, из которой в итоге складывается технический прогресс ;)
                PS: отдельно хочется отметить решительное "написан неправильно" по отношению к гугльмапсу. "Мы овладеваем новыми видами спора. Спор без фактов. Спор на темпераменте. Спор, переходящий от голословного утверждения на личность партнера" ;) (с) ММ. Мышку и клавиатуру вроде у вас никто не отнимал. Напишите "правильный" гугльмапс, и вы перейдете из разряда сотрясателей воздуха в ряды уважаемых и небедных людей.
            • +1
              Можно Перл Харбор, простите за неэтичность, но ведь автор сам начал.
            • НЛО прилетело и опубликовало эту надпись здесь
      • +2
        Огромное спасибо за перевод!
        • –11
          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 при первой ошибке рендеринга.
          • +5
            Такое впечатление, что чтение [i]текста полностью[/i] не входит в круг ваших привычек.
            • –1
              Входит. Но весь текст — попытка оправдать IE несмотря ни на что. Есть браузеры, которые поддерживают стандарты без хаков в том количестве, которое используется в современном вебе. IE до этого уровня далеко. Когда IE будет проходить ACID2 без грязных хаков и пройдет acid3 хотя бы на 40-50 баллов, тогда можно говорить о том, как он поддерживает стандарты и что лучше, поддерживать новые стандарты или быть совместимым с кучей старых костылей. В IE8 предполагается введение еще одного костыля только из-за того, что он не может по-человечески работать. Его quirks mode идеален, особенно в старых версиях, но режима соответствия стандартам у него практически нет. Есть только очень неудачные попытки вроде IE8 в том виде, какой имеется сейчас.
              • +3
                Вообще-то, "причина введения еще одного костыля" очень хорошо описана в тексте, и она совсем не "не может по-человечески работать".
                • 0
                  Костыль — мета-тег, переключающий режимы отображения. Очень много веб-разработчиков выразят свою благодарность за это. Переключение режимов — это хорошо, но не в таком виде. MS, как обычно, пытается сделать свой стандарт, «чуть отличающийся от остальных».
                  • 0
                    "Принцип надежности", они его слишком долго придерживались, чтобы теперь просты выключить. Да и привычка Майкрософт к многорядному рынку, а не многие-ко-многим, тоже дает свое знать.
                    • +2
                      Вы, простите, прикалываетесь? Преставьте себя разработчиком IE и предложите свой вариант действий - за исключением "всему Microsoft сделать харакири". Да, результат этих действий не должен приводить к неправильному отображению чертовой уймы сайтов в сети.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                                                                                                                      Или взять тот же ФФ, почти с каждой новой версией у него отваливается половина екстеншнов, и ни о какой обратной совместимости никто не думает. И ничего, народ терпит, разработчики переписывают расширения, и все рады:)
                                                                                                                      • +1
                                                                                                                        Потому что под FF "обычные пользователи" еще не перешли, а "гикам" (да, мне тоже) новые свистелки и перделки интереснее отсутствия проблем при апгрейде.