Почему Internet Explorer имеет так много несовместимостей с другими браузерами?

10

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

Например: я разрабатываю расширение для браузера с использованием фреймворка Crossrider . Расширение хорошо работает со всеми комбинациями [Windows | Mac OS | Linux] и [Chrome | Firefox], но он не работает с IE, потому что IE обрабатывает $(window).height()и $(window).scrollTop()немного по-другому.

Есть ли известный подробный анализ этой ситуации или интервью с инсайдером, которое выяснит причину? Это корпоративная культура, процесс проектирования, дефект качества или какое-то ужасное неизвестное наследие?

Якуб М.
источник
4
Скорее всего, обратная совместимость. IE самый старый из них.
Manoj R
20
Я предполагаю, что в Microsoft принято не следовать общепринятым стандартам в попытке создать свои собственные стандарты и свой маленький мир. У них есть история, делающая это во всем, от сетевых протоколов до сред разработки программного обеспечения.
maple_shaft
16
@ManojR IE не самый старый: en.wikipedia.org/wiki/History_of_the_web_browser
Пол
14
Ключевое слово - Обнимать, Расширять и Тушить .
SF.
10
Отлично. Я потратил 15 минут на то, чтобы написать объяснение того, как MS решает приложить свои усилия с IE к тесной интеграции ОС через ActiveX вместо R & D в CSS / HTML / JS, только чтобы найти вопрос закрытым, когда я вернусь к вставке в свой Magnum Opus: (
Грэхем

Ответы:

23

Почему Microsoft® Internet Explorer® несовместим с другими браузерами и опубликованными стандартами?

  1. Чтобы добавить функции, которых нет в других браузерах
  2. Когда программисты пишут веб-страницы, которые используют функции только IE, код не будет работать в других браузерах. Это побуждает конечных пользователей просматривать эти сайты в IE (и, следовательно, все больше людей используют IE, а поскольку он работает только в Windows, все больше людей используют Windows).
  3. Инструменты Microsoft (наиболее известным для этого является FrontPage), как правило, создают код, который работает только в IE или лучше всего работает в IE. Хотя это продвигает # 2 выше, оно заслуживает отдельной маркировки, потому что следующий разработчик, который будет работать над этим веб-сайтом или веб-приложением, теперь должен будет использовать те же технологии Microsoft, которые изначально использовались для его создания, или переписать весь проект в разные технологии.

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

Подход Microsoft - палка о двух концах. С одной стороны, он создал функцию асинхронного запроса XML / HTTP, которая сделала возможным AJAX (и другие положительные нововведения), которые быстро скопировали другие браузеры. Но Microsoft также заканчивает тем, что выпускает версии IE, которые несовместимы друг с другом, поэтому кусаются те разработчики, которые больше всего играли в планы Microsoft.

Мой любимый пример несовместимости с версией IE - собственная кампания Micrsoft по IE6, где они поощряют людей не использовать свой собственный браузер. Теория заключается в том, что Microsoft может побудить людей перейти на более новую версию IE, тогда как другие, которые кричат ​​«IE6 Must Die», с большей вероятностью будут поощрять пользователей использовать браузер другой марки вместо IE.

Короче говоря, это довольно успешная стратегия доминирования на рынке со стороны Microsoft, которая иногда наносит ущерб, а иногда помогает остальной части отрасли. Для себя я стараюсь создавать только проверенный, соответствующий стандартам HTML, который тестируется в последней версии любого браузера с долей рынка 2% или более (плюс последние 3 версии IE).


Microsoft и Internet Explorer являются зарегистрированными товарными знаками корпорации Microsoft в США и / или других странах.

GlenPeterson
источник
2
Я бы согласился с большей частью этого, если бы мы говорили о IE6. Как насчет 9 и позже?
Билли Онил
11

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

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

Обратите внимание, что вам не нужно даже заявлять о какой-либо сознательной злобе со стороны разработчиков или руководства. Заниматься своим делом и продвигать свои собственные протоколы, стандарты и т. Д. Вместо того, чтобы вносить вклад в общие, является просто естественным поведением для доминирующего игрока, и, вероятно, его неизбежно без очень жестких правовых мер, которые общественность в целом явно не желает санкционировать. Фактически, большая часть того, что я слышал и читал о мышлении в Microsoft, заставляет меня верить, что большинство их людей искренне , честно думайте, что их продукты настолько замечательны и превосходны, что только неприятные недовольные хотят в первую очередь использовать что-либо еще, и что они окажут своим постоянным клиентам большую медвежью услугу, если они потратят усилия на совместимость, а не на «инновационные» крутые новинки.

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

Килиан Фот
источник
2

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

Ryathal
источник
2
Можете ли вы подтвердить это второе утверждение некоторыми проверяемыми фактами?
Барт ван Инген Шенау
@ Барт Я сомневаюсь, что что-то вроде реального участника, заявляющего, что такое действительно существует, я полагаю, что модель коробки w3c - довольно хорошее доказательство того, что они сделали это в некоторой степени.
Ryathal
2
В этом случае, я бы не стал приписывать умышленное намерение несовместимости с W3C. Тогда вполне может быть, что W3C подумал, что IE будет соответствовать, или что разница будет достаточно мала, чтобы IE можно было легко преобразовать в стандарт.
Барт ван Инген Шенау
1
@Bart, главный конкурент IE в первой войне браузеров, Netscape, не был значительно более совместимым с W3C. Только в более поздних версиях Mozilla и ранних Firefox был доступен достаточно совместимый браузер. Но эти браузеры опубликовали IE6.
Билли Онил
@BillyONeal: Спасибо. Это укрепляет мою веру в то, что W3C не собирался взламывать IE, если только они не хотели взломать каждый браузер той эпохи.
Барт ван Инген Шенау