Dlaczego Internet Explorer ma tak wiele niezgodności z innymi przeglądarkami?


10

Internet Explorer ma wiele zastrzeżonych funkcji, których nie ma w innych przeglądarkach, a także szereg niezgodności ze standardami. Czy ktoś ma pojęcie, co jest przyczyną tych niezgodności?

Na przykład: Tworzę rozszerzenie przeglądarki przy użyciu frameworka Crossrider . Rozszerzenie działa dobrze ze wszystkimi kombinacjami [Windows | Mac OS | Linux] i [Chrome | Firefox], ale nie działa z IE, ponieważ IE obsługuje $(window).height()i $(window).scrollTop()trochę inaczej.

Czy jest znana dokładna analiza tej sytuacji lub wywiad z osobą z wewnątrz, która wyjaśniłaby przyczynę? Czy to kultura korporacyjna, proces projektowania, wada kontroli jakości czy jakieś okropne, nieznane dziedzictwo?


4
Najprawdopodobniej kompatybilność wsteczna. IE jest najstarszym z nich wszystkich.
Manoj R

20
Sądzę, że kultura w Microsoft nie przestrzega powszechnie przyjętych standardów, próbując stworzyć własne standardy i własny mały świat. W przeszłości robią to we wszystkim, od protokołów sieciowych po środowiska programistyczne.
wałek klonowy

16
@ManojR IE nie jest najstarszy: en.wikipedia.org/wiki/History_of_the_web_browser
Paul


10
Świetny. Poświęcam 15 minut na opisanie, w jaki sposób MS decyduje się włożyć IE w ścisłą integrację systemu operacyjnego za pośrednictwem ActiveX zamiast badań i rozwoju w CSS / HTML / JS, ale po powrocie do wklejenia w Magnum Opus znalazłem pytanie zamknięte: (
Graham,

Odpowiedzi:


23

Dlaczego Microsoft® Internet Explorer® jest niezgodny z innymi przeglądarkami i opublikowanymi standardami?

  1. Aby dodać funkcje, których nie mają inne przeglądarki
  2. Gdy programiści piszą strony internetowe, które używają funkcji tylko IE, kod nie będzie działał w innych przeglądarkach. Zachęca to użytkowników końcowych do przeglądania tych witryn w IE (a zatem więcej osób korzysta z IE, a ponieważ działa tylko w systemie Windows, więcej osób korzysta z systemu Windows).
  3. Narzędzia Microsoft (FrontPage jest z tego najbardziej znany) mają tendencję do tworzenia kodu, który działa tylko w IE lub najlepiej w IE. Chociaż promuje to punkt 2 powyżej, zasługuje na swój własny punkt, ponieważ następny programista, który będzie pracował nad tą witryną lub aplikacją sieciową, musi teraz korzystać z tych samych technologii Microsoft, które były pierwotnie używane, albo musi przepisać cały projekt w inna technologia.

Intranety korporacyjne są szczególnie narażone na tę strategię, ponieważ zapewniają środowisko, w którym wszyscy użytkownicy korzystają z tej samej przeglądarki (do czasu pojawienia się nowej wersji). Ponadto, jeśli witryna nie jest skierowana do klientów, nie będzie budżetu nawet na niewielki koszt obsługi wielu przeglądarek. Z czasem starsze witryny intranetowe w firmie uniemożliwiają tej firmie porzucenie IE (lub nawet konkretnej wersji IE) dla innej przeglądarki.

Podejście Microsoftu jest obosiecznym mieczem. Z jednej strony stworzyła funkcję asynchronicznego żądania XML / HTTP, która umożliwiła AJAX (i inne pozytywne innowacje), które inne przeglądarki szybko skopiowały. Ale Microsoft również produkuje wersje IE, które są ze sobą niezgodne, w ten sposób gryząc samych deweloperów, którzy grali najwięcej w plany Microsoftu.

Moim ulubionym przykładem niezgodności między wersjami IE jest własna kampania odliczania IE6 firmy Micrsoft, w której zachęcają ludzi do nieużywania własnej przeglądarki. Teoria jest taka, że ​​Microsoft może zachęcać ludzi do uaktualnienia do nowszej wersji IE, podczas gdy inni, którzy krzyczą „IE6 Must Die”, częściej zachęcają użytkowników do korzystania z przeglądarki innej marki zamiast IE.

Krótko mówiąc, jest to dość udana strategia dominacji rynkowej firmy Microsoft, która czasami boli, a czasem pomaga reszcie branży. Dla siebie staram się tworzyć tylko sprawdzony, zgodny ze standardami HTML, który jest testowany w najnowszej wersji dowolnej przeglądarki z 2% lub większym udziałem w rynku (plus najnowsze 3 wersje IE).


Microsoft i Internet Explorer są zastrzeżonymi znakami towarowymi firmy Microsoft w Stanach Zjednoczonych i / lub innych krajach.


2
Zgodziłbym się z większością tego, jeśli mówimy o IE6. Co powiesz na 9 i później?
Billy ONeal

11

Jak zwykle chodzi o zachęty. Jeśli chcesz wiedzieć, dlaczego coś rzeczywiście się dzieje (w przeciwieństwie do tego, co twierdzą, lub chcieliby wierzyć), wykonaj pieniądze.

Wyobraź sobie sytuację, w której masz wygodną pozycję na rynku w kluczowej technologii (komputery osobiste). Wartość sieci ma duży rozmiar, więc chcesz mieć dostęp do jak największej liczby użytkowników za pomocą swoich produktów. Ponieważ najprawdopodobniej już korzystają z twojego systemu, warto wprowadzić nowe funkcje i poświęcić wysiłek tylko na kompatybilność wsteczną z własnymi produktami. Zgodność z produktami konkurencji jest niższa na liście priorytetów, ponieważ nie tworzy dla ciebie tak dużego potencjału wartościowego; w rzeczywistości może kosztować cię wartość, jeśli produkty konkurencji staną się na tyle interoperacyjne, że ktoś mógłby się obejść bez twojego systemu.

Pamiętaj, że nie musisz nawet stawiać tutaj świadomej złośliwości ze strony programistów lub kierownictwa. Robienie własnych rzeczy i promowanie własnych protokołów, standardów itp. Zamiast przyczyniania się do ogólnych jest po prostu naturalnym zachowaniem dominującego gracza i prawdopodobnie nieuniknione bez bardzo rygorystycznych środków prawnych, na które ogół społeczeństwa nie jest skłonny zezwolić. W rzeczywistości większość tego, co słyszałem i czytałem o sposobie myślenia w firmie Microsoft, prowadzi mnie do przekonania, że ​​większość ich ludzi naprawdę , szczerze uważają, że ich produkty są tak wspaniałe i lepsze, że tylko nieprzyjemni malkontenci chcieliby w pierwszej kolejności użyć czegokolwiek innego, i że zrobiliby swoim lojalnym klientom wielką niedogodność, gdyby poświęcili wysiłek na interoperacyjność, zamiast „wprowadzać innowacje” na fajne nowe rzeczy.

Powodując ból programistów, którzy nie muszą obsługiwać różne produkty są po prostu efektem ubocznym tej postawy. Wydaje się to bardzo bezduszne, a nawet złe dla nas poza praktykami, ale podejrzewam, że wielu z nas zajęłoby to samo stanowisko, gdyby tabele zostały magicznie odwrócone.


2

Problem powodowany przez IE to 2-częściowy problem, oba naprawdę wynikają z faktu, że IE wygrał pierwszą wojnę w przeglądarce. Kiedyś była to najlepsza i najbardziej zaawansowana przeglądarka, ale przez długi czas siedzieli bezczynnie i grają w catchup, ale mają ogromne dziedzictwo, teraz inne przeglądarki, ponieważ wiele firm zainwestowało miliony w wewnętrzne witryny, które działają tylko na konkretna wersja IE. Stwardnienie rozsiane popełniłoby samobójstwo, gdyby przejście między wersjami nie powodowało bólu, jak to możliwe. Po drugie, ponieważ wygrali pierwszą wojnę przeglądarek i zbliżali się do całkowitego monopolu, W3C aktywnie napisała standardy, które były sprzeczne z istniejącą funkcjonalnością IE, starając się pozostać istotnymi jako organ normalizacyjny w zakresie przeglądarek, a dzięki nowszym przeglądarkom, które spełniały te standardy, pracował


2
Czy potrafisz poprzeć to drugie twierdzenie pewnymi weryfikowalnymi faktami?
Bart van Ingen Schenau

@ Bart Wątpię w coś takiego, jak prawdziwy członek, który twierdzi, że taki istnieje, wierzę, że model pudełka w3c jest całkiem dobrym dowodem, że zrobili to do pewnego stopnia.
Ryathal

2
W takim przypadku wahałbym się przypisać umyślne zamiary niezgodności z W3C. Równie dobrze może być tak, że W3C myślało, że IE będzie zgodny lub że różnica jest na tyle mała, że ​​IE można łatwo przekonwertować na standard.
Bart van Ingen Schenau

1
@Bart, główny konkurent IE w pierwszej wojnie przeglądarkowej, Netscape, nie był znacznie bardziej zgodny z W3C. Dopiero późniejsze wersje Mozilli i wczesnych Firefoksów były dostępne w miarę zgodnej przeglądarki. Ale te przeglądarki mają późniejszą wersję IE6.
Billy ONeal

@BillyONeal: Dzięki. To utwierdza mnie w przekonaniu, że W3C nie zdecydowało się na bash IE, chyba że chciało bash każdą przeglądarkę tej epoki.
Bart van Ingen Schenau
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.