Пользователь
0,0
рейтинг
23 марта 2008 в 13:34

Разработка → О браузерах и стандартах. Марсианские наушники перевод

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

Предстоящая битва будет проходить под председательством Дена Хашамовича, ветерана Майкрософт, который сейчас возглавляет команду, готовящую вам Интернет Эксплорер 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% правы в принципах и, как обычно, прагматики правы на практике. Флейм будет продолжаться годами. Этот спор разделяет мир ровно надвое. Если у вас есть какой-нибудь способ купить акции Священных Войн Интернета, то сейчас самое время это сделать.
Перевод: Joel Spolsky
Алексей @smartov
карма
232,5
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

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

  • –9
    Автор, вы участвовали в битве под Сталинградом?
    • +4
      Вопросы автору лучше задавать по-английски. Сделать это можно здесь.
      • –1
        не ожидал, что такое мог написать американец, хотя с их представлениями о ВОВ... меня подобные "писательские" аналогии коробят
        • 0
          Мне они тоже не нравятся, но перевод есть перевод. Пока не придумал чем аналогичным, но не режущим ухо русскому человеку, можно заменить Сталинград.
          Если предложите подходящее - с удовольствием поменяю.
          • 0
            высадка в Нормандии, Перлхарбор.
            за Сталинградскую битву потери СССР составили цифру то ли бОльшую, то ли сопоставимую со ВСЕМИ потерями американцев за ВСЮ войну.
            • НЛО прилетело и опубликовало эту надпись здесь
              • 0
                Знаете, в ПНВС была чудная фраза о неких "абсолютниках". По памяти: "Они считали что познание бесконечности требует бесконечного же времени. С этим никто не спорил. Но отсюда они делали неожиданный вывод: поэтому работай-не работай - все едино". "Делать очень простые сайты" - это все равно что вернуться в пещеры и радоваться убитому мамонту, бья себя пяткой в волосатую грудь... А реальная жисть как раз состоит из хождений по краю, нахождения компромиссов и прочей интересной мелочи, из которой в итоге складывается технический прогресс ;)
                PS: отдельно хочется отметить решительное "написан неправильно" по отношению к гугльмапсу. "Мы овладеваем новыми видами спора. Спор без фактов. Спор на темпераменте. Спор, переходящий от голословного утверждения на личность партнера" ;) (с) ММ. Мышку и клавиатуру вроде у вас никто не отнимал. Напишите "правильный" гугльмапс, и вы перейдете из разряда сотрясателей воздуха в ряды уважаемых и небедных людей.
          • +1
            Можно Перл Харбор, простите за неэтичность, но ведь автор сам начал.
            • 0
              А это идея!
          • НЛО прилетело и опубликовало эту надпись здесь
  • +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
                                        Вот для них и существует простое «решение». ;-)
                                        • 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 "обычные пользователи" еще не перешли, а "гикам" (да, мне тоже) новые свистелки и перделки интереснее отсутствия проблем при апгрейде.
        • +1
          Перевели. 60% тех кто сидел под Амарок. Остальной же куче людей эта проблема вообще неведома :) Юзают какой-нибудь Winamp или AIMP или даже WMP под Виндой - и все работает нормально.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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