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

10

Internet Explorer ha un numero di funzioni proprietarie che non si trovano in altri browser e un numero di incompatibilità con gli standard. Qualcuno ha un'idea di cosa 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 quella situazione o un'intervista con un membro che chiarirebbe la causa? È la cultura aziendale, il processo di progettazione, un difetto di QA o qualche orrendo patrimonio sconosciuto?

    
posta Jakub M. 22.01.2013 - 14:04
fonte

3 risposte

23

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

  1. Per aggiungere funzionalità che altri browser non hanno
  2. Quando i programmatori scrivono pagine Web che utilizzano funzionalità solo IE, il codice non funzionerà su altri browser. Questo incoraggia gli utenti finali a vedere quei siti in IE (e quindi più persone usano IE, e dal momento che 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. Anche se questo promuove il n. 2 sopra, merita il suo obiettivo perché il prossimo sviluppatore a lavorare su quel sito o applicazione web ora deve usare le stesse tecnologie Microsoft che sono state originariamente utilizzate per produrlo, o dover 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 (finché non esce una nuova versione). Inoltre, se un sito non è rivolto al cliente, non ci sarà budget anche per il costo minimo di supportare più browser. Nel tempo, i siti intranet legacy di un'azienda impediscono a tutta l'azienda di abbandonare IE (o persino 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 è la campagna Conto alla rovescia IE6 di Micrsoft in cui incoraggiano le persone a non utilizzare 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'altra marca 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 ha aiutato il resto del settore. Per quanto mi riguarda, cerco di produrre solo HTML convalidato, conforme agli standard, testato sull'ultima versione di qualsiasi browser con il 2% o più di quota di mercato (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.

    
risposta data 22.01.2013 - 14:58
fonte
11

Come al solito, la domanda è di incentivi. Se hai bisogno di sapere perché succede effettivamente qualcosa di (al contrario di ciò che la gente sostiene o vorrebbe credere), segui i soldi.

Immagina la situazione in cui hai una comoda posizione di mercato 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. Dal momento che probabilmente stanno già utilizzando il tuo sistema, vale la pena di introdurre nuove funzionalità e spendere gli sforzi solo sulla retrocompatibilità con i tuoi prodotti. La compatibilità con i prodotti della concorrenza è inferiore nell'elenco delle priorità, dal momento che non crea tanto potenziale valore per te stesso; infatti, costa puoi valutare se i prodotti della concorrenza diventano sufficientemente interoperabili da consentire a qualcuno di eseguire senza il tuo sistema.

Si noti che non è necessario nemmeno postulare alcuna malizia consapevole da parte degli sviluppatori o della gestione qui. Fare la propria cosa 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 apparentemente non è disposto ad autorizzare. Infatti, la maggior parte di ciò che ho sentito e letto sulla mentalità di Microsoft mi porta a credere che la maggior parte delle persone sinceramente , onestamente pensa che i loro prodotti siano così meravigliosi e superiore che solo i malcontenti spiacevoli vorrebbero usare qualsiasi altra cosa in primo luogo, e che farebbero un grande disservizio ai loro fedeli clienti se passassero gli sforzi per l'interoperabilità piuttosto che "innovare" cose nuove e interessanti.

Causare dolore agli sviluppatori web che fanno devono supportare prodotti diversi è semplicemente un effetto collaterale di questo atteggiamento. Sembra molto insensibile e persino malvagio per noi al di fuori dei praticanti, ma sospetto che molti di noi prenderebbero la stessa posizione se le tabelle fossero magicamente invertite.

    
risposta data 22.01.2013 - 14:26
fonte
2

Il dolore causato da IE è un problema in 2 parti, entrambi derivano dal fatto che IE ha vinto la prima guerra dei browser. Era il browser migliore e più avanzato, ma è rimasto inattivo per un lungo periodo e ora sta giocando a catchup, ma ha un enorme fardello legacy ora ha un altro browser, perché molte aziende hanno milioni investito in siti interni che funzionano solo su una versione specifica di IE. La SM si sarebbe suicidata se non avessero reso la transizione tra le versioni più dolorosa possibile. Secondo perché avevano vinto la prima guerra dei browser e si stavano avvicinando al monopolio totale, il W3C scrisse attivamente degli standard che erano in conflitto con le funzionalità di IE esistenti nel tentativo di rimanere pertinenti come un corpo standard per quanto riguardava i browser e grazie ai nuovi browser che seguivano quegli standard lavorato.

    
risposta data 22.01.2013 - 14:46
fonte

Leggi altre domande sui tag