Perché Internet Explorer ha così tante incompatibilità con altri browser?


10

Internet Explorer ha una serie di funzionalità proprietarie che non si trovano in altri browser, nonché una serie di incompatibilità con gli standard. Qualcuno ha idea di quale sia la causa di tali incompatibilità?

Ad esempio: sviluppo un'estensione del browser utilizzando il framework Crossrider . L'estensione funziona bene con tutte le combinazioni di [Windows | Mac OS | Linux] e [Chrome | Firefox] ma non funziona con IE perché IE gestisce $(window).height()e $(window).scrollTop()un po 'diversamente.

Esiste un'analisi approfondita nota di tale situazione o un'intervista con un addetto ai lavori che chiarirebbe la causa? È la cultura aziendale, il processo di progettazione, un difetto di qualità o qualche orribile eredità sconosciuta?


4
Molto probabilmente retrocompatibilità. IE è il più vecchio di tutti.
Manoj R,

20
Immagino che la cultura di Microsoft non segua gli standard universalmente accettati nel tentativo di creare i propri standard e il proprio piccolo mondo. Hanno una storia di farlo in tutto, dai protocolli di rete agli ambienti di sviluppo software.
maple_shaft

16
@ManojR IE non è il più vecchio: en.wikipedia.org/wiki/History_of_the_web_browser
paul

14
La parola chiave è Abbraccia, Estendi ed Estingua .
SF.

10
Grande. Passo 15 minuti a scrivere una spiegazione di come MS sceglie di mettere i suoi sforzi con IE in una stretta integrazione del sistema operativo tramite ActiveX, invece di R&S in CSS / HTML / JS, solo per trovare la domanda chiusa quando torno a incollare nel mio Magnum Opus: (
Graham,

Risposte:


23

Perché Microsoft® Internet Explorer® non è compatibile con altri browser e standard pubblicati?

  1. Per aggiungere funzionalità che altri browser non hanno
  2. Quando i programmatori scrivono pagine Web che utilizzano solo funzionalità IE, il codice non funzionerà su altri browser. Questo incoraggia gli utenti finali a visualizzare quei siti in IE (e quindi più persone usano IE, e poiché funziona solo su Windows, più persone usano Windows).
  3. Gli strumenti Microsoft (FrontPage è il più famoso per questo) tendono a produrre codice che funziona solo su IE o funziona meglio su IE. Sebbene ciò promuova il n. 2 sopra, merita il suo stesso proiettile perché il prossimo sviluppatore che deve lavorare su quel sito Web o applicazione Web deve ora utilizzare le stesse tecnologie Microsoft che sono state originariamente utilizzate per produrlo o deve riscrivere l'intero progetto in un tecnologia diversa.

Le intranet aziendali sono particolarmente vulnerabili a questa strategia perché forniscono un ambiente in cui tutti gli utenti si trovano sullo stesso browser (fino a quando non viene rilasciata una nuova versione). Inoltre, se un sito non è rivolto ai clienti, non ci sarà budget nemmeno per il costo minimo di supportare più browser. Nel tempo, i siti intranet legacy di un'azienda impediscono a quella intera azienda di abbandonare IE (o anche una versione specifica di IE) per un altro browser.

L'approccio di Microsoft è un'arma a doppio taglio. Da un lato, ha prodotto la funzionalità di richiesta asincrona XML / HTTP che ha reso possibile AJAX (e altre innovazioni positive) che altri browser hanno rapidamente copiato. Ma Microsoft finisce anche per produrre versioni di IE che sono incompatibili tra loro, mordendo così gli stessi sviluppatori che hanno giocato di più nei piani di Microsoft.

Il mio esempio preferito di incompatibilità IE intra-versione è quello di Micrsoft campagna di conto alla rovescia IE6 di cui incoraggiano le persone a non usare il proprio browser. La teoria è che Microsoft può incoraggiare le persone a passare a una versione più recente di IE, mentre altri che gridano "IE6 Must Die" hanno maggiori probabilità di incoraggiare gli utenti a utilizzare un altro marchio di browser anziché IE.

In breve, è una strategia di dominio del mercato abbastanza riuscita da parte di Microsoft che a volte ha danneggiato e talvolta aiutato il resto del settore. Per quanto mi riguarda, provo a produrre solo HTML convalidato e conforme agli standard che viene testato sull'ultima versione di qualsiasi browser con una quota di mercato pari o superiore al 2% (più le ultime 3 versioni di IE).


Microsoft e Internet Explorer sono marchi registrati di Microsoft Corporation negli Stati Uniti e / o in altri Paesi.


2
Concordo con la maggior parte di questo se stessimo parlando di IE6. Che dire di 9 e successivi?
Billy ONeal,

11

Come al solito, la domanda è di incentivi. Se hai bisogno di sapere perché qualcosa in realtà accade (a differenza di quanto sostengono, o vorrebbe credere), seguire il denaro.

Immagina la situazione in cui hai una posizione di mercato comoda in una tecnologia chiave (personal computing). Il valore delle reti è in larga misura nelle sue dimensioni, quindi vuoi essere in grado di raggiungere il maggior numero possibile di utenti con i tuoi prodotti. Poiché molto probabilmente stanno già utilizzando il tuo sistema, vale la pena introdurre nuove funzionalità e dedicare sforzi solo alla retrocompatibilità con i tuoi prodotti. La compatibilità con i prodotti della concorrenza è inferiore nell'elenco delle priorità, poiché non crea lo stesso potenziale di valore per te stesso; in effetti, può costare valore se i prodotti della concorrenza diventano sufficientemente interoperabili che qualcuno potrebbe fare a meno del proprio sistema.

Nota che qui non è necessario nemmeno sostenere una malizia consapevole da parte degli sviluppatori o del management. Fare le proprie cose e promuovere i propri protocolli, standard ecc. Piuttosto che contribuire a quelli generali è semplicemente un comportamento naturale per un giocatore dominante, e probabilmente inevitabile senza misure legali molto rigorose che il pubblico in generale non è apparentemente disposto ad autorizzare. In effetti, la maggior parte di ciò che ho sentito e letto sulla mentalità di Microsoft mi porta a credere che la maggior parte delle loro persone sia sinceramente , onestamente pensi che i loro prodotti siano così meravigliosi e superiori che solo i malcontenti spiacevoli vorrebbero usare qualsiasi altra cosa in primo luogo e che farebbero un grande disservizio ai loro clienti fedeli se avessero speso sforzi per l'interoperabilità piuttosto che "innovare" cose interessanti.

Causando dolore per gli sviluppatori web che non devono sostenere i prodotti diversi è semplicemente un effetto collaterale di questo atteggiamento. Sembra molto insensibile e persino malvagio a noi fuori dai praticanti, ma sospetto che molti di noi prenderebbero la stessa posizione se i tavoli fossero magicamente invertiti.


2

Il dolore causato da IE è un problema in 2 parti, entrambi derivano dal fatto che IE ha vinto la prima guerra browser. Era il browser migliore e più avanzato, ma rimasero inattivi per lungo tempo e ora stanno giocando a catchup, ma ora hanno un enorme carico di eredità che altri browser hanno, perché molte aziende hanno investito milioni in siti interni che funzionano solo su una versione specifica di IE. La SM si suiciderebbe se non rendessero la transizione tra le versioni il più indolore possibile. In secondo luogo perché hanno vinto la prima guerra dei browser e si stavano avvicinando al monopolio totale, il W3C ha scritto attivamente standard che erano in conflitto con le funzionalità IE esistenti nel tentativo di rimanere rilevanti come organismo di standard per quanto riguarda i browser e grazie ai browser più recenti che seguivano tali standard lavorato.


2
Puoi sostenere questa seconda affermazione con alcuni fatti verificabili?
Bart van Ingen Schenau,

@Bart Dubito che qualcosa come un vero membro affermi che esiste davvero, credo che il modello di box w3c sia una buona prova del fatto che lo abbiano fatto in una certa misura.
Ryathal,

2
In tal caso, esiterei ad attribuire intenzioni intenzionali di incompatibilità al W3C. Quindi potrebbe anche essere che il W3C pensasse che IE sarebbe stato conforme o che la differenza fosse abbastanza piccola da poter convertire IE nello standard abbastanza facilmente.
Bart van Ingen Schenau,

1
@Bart, il principale concorrente di IE nella prima guerra per browser, Netscape, non era molto più conforme al W3C. Solo nelle versioni successive di Mozilla e Firefox precedenti era disponibile un browser ragionevolmente conforme. Ma quei browser post-data IE6.
Billy ONeal

@BillyONeal: grazie. Ciò rafforza la mia convinzione che il W3C non abbia deciso di colpire IE, a meno che non volessero colpire tutti i browser di quell'epoca.
Bart van Ingen Schenau
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.