¿Por qué Internet Explorer tiene tantas incompatibilidades con otros navegadores?

10

Internet Explorer tiene una serie de características propietarias que no se encuentran en otros navegadores, así como una serie de incompatibilidades con los estándares. ¿Alguien tiene una idea de cuál es la causa de esas incompatibilidades?

Por ejemplo: desarrollo una extensión de navegador usando el framework Crossrider . La extensión funciona bien con todas las combinaciones de [Windows | Mac OS | Linux] y [Chrome | Firefox] pero no funciona con IE porque IE maneja $(window).height()y es $(window).scrollTop()un poco diferente.

¿Existe un análisis exhaustivo conocido de esa situación, o una entrevista con una fuente que aclare la causa? ¿Es la cultura corporativa, el proceso de diseño, una falla de control de calidad o algún legado horrible y desconocido?

Jakub M.
fuente
44
Probablemente compatibilidad con versiones anteriores. IE es el más antiguo de todos.
Manoj R
20
Supongo que es la cultura en Microsoft no seguir los estándares universalmente aceptados en el intento de crear sus propios estándares y su propio pequeño mundo. Tienen un historial de hacer esto en todo, desde protocolos de red hasta entornos de desarrollo de software.
maple_shaft
16
@ManojR IE no es el más antiguo: en.wikipedia.org/wiki/History_of_the_web_browser
Paul
14
La palabra clave es Embrace, Extend and Extinguish .
SF.
10
Excelente. Paso 15 minutos escribiendo una explicación de cómo MS elige poner sus esfuerzos con IE en una estrecha integración del sistema operativo a través de ActiveX, en lugar de I + D en CSS / HTML / JS, solo para encontrar la pregunta cerrada cuando vuelvo a pegar en mi Magnum Opus: (
Graham

Respuestas:

23

¿Por qué Microsoft® Internet Explorer® es incompatible con otros navegadores y estándares publicados?

  1. Para agregar funciones que otros navegadores no tienen
  2. Cuando los programadores escriben páginas web que usan funciones solo de IE, el código no funcionará en otros navegadores. Esto anima a los usuarios finales a ver esos sitios en IE (y, por lo tanto, más personas usan IE, y dado que solo se ejecuta en Windows, más personas usan Windows).
  3. Las herramientas de Microsoft (FrontPage es la más famosa por esto) tienden a producir código que solo funciona en IE, o funciona mejor en IE. Si bien esto promueve el n. ° 2 anterior, merece su propia viñeta porque el próximo desarrollador que trabaje en ese sitio web o aplicación web ahora tiene que usar las mismas tecnologías de Microsoft que se usaron originalmente para producirlo, o tiene que reescribir todo el proyecto en un Tecnología diferente.

Las intranets corporativas son particularmente vulnerables a esta estrategia porque proporcionan un entorno en el que todos los usuarios están en el mismo navegador (hasta que salga una nueva versión). Además, si un sitio no está orientado al cliente, no habrá presupuesto ni siquiera para el pequeño costo de soportar múltiples navegadores. Con el tiempo, los sitios de intranet heredados de una empresa evitan que toda la empresa abandone IE (o incluso una versión específica de IE) por otro navegador.

El enfoque de Microsoft es un arma de doble filo. Por un lado, ha producido la funcionalidad de solicitud asincrónica XML / HTTP que hizo posible AJAX (y otras innovaciones positivas) que otros navegadores copiaron rápidamente. Pero Microsoft también termina produciendo versiones de IE que son incompatibles entre sí, lo que muerde a los mismos desarrolladores que jugaron más en los planes de Microsoft.

Mi ejemplo favorito de incompatibilidad de IE dentro de la versión es la propia campaña de cuenta regresiva IE6 de Micrsoft, donde alientan a las personas a no usar su propio navegador. La teoría es que Microsoft puede alentar a las personas a actualizar a una versión más reciente de IE, mientras que otros que gritan "IE6 debe morir" tienen más probabilidades de alentar a los usuarios a usar otra marca de navegador en lugar de IE.

En resumen, es una estrategia bastante exitosa de dominación del mercado por parte de Microsoft que a veces ha perjudicado y otras ha ayudado al resto de la industria. Por mi parte, trato de producir solo HTML validado y compatible con los estándares que se prueba en la última versión de cualquier navegador con un 2% o más de cuota de mercado (más las últimas 3 versiones de IE).


Microsoft e Internet Explorer son marcas registradas de Microsoft Corporation en los EE. UU. Y / u otros países.

GlenPeterson
fuente
2
Estoy de acuerdo con la mayoría de esto si estuviéramos hablando de IE6. ¿Qué hay de 9 y más tarde?
Billy ONeal
11

Como de costumbre, la pregunta es de incentivos. Si necesita saber por qué sucede algo realmente (a diferencia de lo que la gente dice, o le gustaría creer), siga el dinero.

Imagine la situación en la que tiene una posición cómoda en el mercado en una tecnología clave (informática personal). El valor de las redes es en gran medida en su tamaño, por lo que desea poder llegar a la mayor cantidad de usuarios posible con sus productos. Dado que es muy probable que ya estén usando su sistema, vale la pena introducir nuevas características y gastar esfuerzo solo en la compatibilidad con sus propios productos. La compatibilidad con los productos de la competencia es inferior en la lista de prioridades, ya que no crea tanto potencial de valor para usted; de hecho, puede costarle valor si los productos de la competencia se vuelven lo suficientemente interoperables como para que alguien pueda prescindir de su sistema por completo.

Tenga en cuenta que ni siquiera necesita plantear ninguna malicia consciente por parte de los desarrolladores o la administración aquí. Hacer lo suyo y promover sus propios protocolos, estándares, etc., en lugar de contribuir a los generales, es simplemente un comportamiento natural para un jugador dominante, y probablemente inevitable sin medidas legales muy estrictas que el público en general aparentemente no está dispuesto a autorizar. De hecho, la mayoría de lo que he escuchado y leído sobre la mentalidad de Microsoft me lleva a creer que la mayoría de su gente es sincera y sincera. piensan que sus productos son tan maravillosos y superiores que solo los descontentos desagradables querrían usar cualquier otra cosa en primer lugar, y que les harían un gran mal servicio a sus clientes leales si gastaran esfuerzo en la interoperabilidad en lugar de 'innovar' cosas nuevas y geniales.

Causando dolor a los desarrolladores web que no tienen que soportar diferentes productos es simplemente un efecto secundario de esta actitud. Nos parece muy cruel e incluso malvado fuera de los practicantes, pero sospecho que muchos de nosotros tomaríamos la misma postura si las mesas se invirtieran mágicamente.

Kilian Foth
fuente
2

El dolor que causa IE es un problema de 2 partes, ambos realmente provienen del hecho de que IE ganó la primera guerra del navegador. Solía ​​ser el mejor y más avanzado navegador, pero permanecieron inactivos durante mucho tiempo y ahora están poniéndose al día, pero tienen una enorme carga heredada ahora que otro navegador tiene, porque muchas compañías tienen millones invertidos en sitios internos que solo funcionan Una versión específica de IE. La EM se suicidaría si no hicieran la transición entre versiones lo más indolora posible. En segundo lugar porque ganaron la primera guerra de navegadores y se acercaban al monopolio total, el W3C escribió activamente estándares que entraban en conflicto con la funcionalidad de IE existente en un intento de seguir siendo relevantes como un organismo de estándares en lo que respecta a los navegadores y gracias a los navegadores más nuevos que siguieron esos estándares. trabajó.

Ryathal
fuente
2
¿Puedes respaldar esa segunda afirmación con algunos hechos verificables?
Bart van Ingen Schenau
@Bart Dudo que un miembro real afirme que tal realidad existe, creo que el modelo de caja w3c es una evidencia bastante buena de que lo hicieron hasta cierto punto.
Ryathal
2
En ese caso, dudaría en atribuir intenciones intencionales de incompatibilidad al W3C. Entonces bien podría ser que el W3C pensara que IE se estaría conformando o que la diferencia fuera lo suficientemente pequeña como para que IE pudiera convertirse al estándar fácilmente.
Bart van Ingen Schenau
1
@Bart, el principal competidor de IE en la primera guerra de navegadores, Netscape, no era mucho más conforme con W3C. No fue hasta las versiones posteriores de Mozilla y los primeros Firefox que un navegador razonablemente conforme estaba disponible. Pero esos navegadores son posteriores a IE6.
Billy ONeal
@BillyONeal: Gracias. Eso fortalece mi creencia de que W3C no se propuso atacar IE, a menos que quisieran atacar a todos los navegadores de esa época.
Bart van Ingen Schenau