Man coded für alle möglichen Browser - und danach bugfixed man für den IE. Aber warum ist das so?
In meiner Wahrnehmung sind die IEs > 6 völlig ausreichend standardkompatibel, so dass keine großartigen Bugfixes oder Hacks mehr notwendig sind. Das eigentliche Problem ist der IE 6, den allerdings einige Entwickler schon kaum mehr beachten. Die Schwierigkeiten, die du beschreibst, existieren längst nicht mehr in dem Maße wie noch vor Einführung des IE 7.
Ich suche Quellen im Netzt oder am liebsten gedruckt, die Hinweise darauf geben, warum Microsoft den IE so entwickelt wie sie es tun - mit all seinen Fehlern und Macken.
Die drei wichtigen Punkte, auf die ich spontan komme:
- Fehlender Druck. Wurde bereits mehr oder weniger ausgeführt, ergibt sich aber auch aus der Kopplung ans Betriebssystem und aus der Tatsache, dass wahrscheinlich ein Großteil der IE-Nutzer gar keinen neuen Browser braucht/will und viele Firmenkunden ohnehin lieber nicht ein funktionierendes System "fixen". Auch auf die Gefahr hin, mich später zu wiederholen: Microsoft verdient nicht mit dem Internet das Geld. (Dazu gibt es sicher Zahlen.) Eher im Gegenteil. Das Internet beherbergt Konkurrenz wie Google Docs.
- Abwärtskompatibilität. Die Neueinführung von Features und Rendering-Eigenheiten ist eine Sache, sie wieder wegzunehmen eine völlig andere. Microsoft steckt da in einer Zwickmühle und verhält sich im Zweifel konservativ und behält Dinge bei, statt zu riskieren, dass ein großer Teil an Internetseiten (und auch firmeninterner Intranetanwendungen) in einer neuen Browserversion fehlerhaft angezeigt oder gar unbrauchbar wird (Crux der Monopolstellung). Interessant hier zum Beispiel: "
version targeting" -- gab einen riesigen Aufschrei in der Entwicklergemeinschaft, Microsoft ist zurückgerudert. (Das kann auch im bereits verlinkten IE-Blog nachgelesen werden. Vielleicht suche ich nachher noch die Links.) Viele Eigenheiten stammen vermutlich noch aus dem IE 6 (oder noch früher) und werden einfach beibehalten. "
Don't break the web." Was man sich immer vergegenwärtigen sollte: Der IE 6 (bzw. die Versionen davor) war bei Einführung kein schlechter Browser.
- Versionierungspolitik/Bindung an Entwicklung des Betriebssystems. Microsoft veröffentlicht Software in "echten" Versionssprüngen, nicht als Kette geringfügiger Updates, wie es etwa beim Firefox tendentiell eher der Fall ist. Kleine Updates für eine Version beschränken sich bei Microsoft fast ausschließlich auf das Stopfen von Sicherheitslücken. Das ist auch beim IE nicht anders (gewesen?), der zusätzlich noch an die Entwicklung des Windows-Systems geknüpft war. Warum gab es so lange keinen IE 7? Auch, weil die Entwicklung von Vista so lange gedauert hat. Da könntest du die Jahreszahlen der Veröffentlichungen vergleichen. Der Grund für die Kopplung (die sie übrigens aufgeweicht haben) ist vermutlich Firmenstrategie und hängt damit zusammen, dass alle Komponenten vom Betriebssystem bis zum Office-Paket ineinandergreifend funktionieren sollen. Der Browser ist und bleibt dabei nicht Microsofts Kerngeschäft.
Warum folgt M$ nicht den Richtlinien des W3C? Gibt es Stellungnahmen seitens M$ oder anderer Browser-assoziierten Machern oder Entwicklern zum Verhalten vom IE?
M$ würde ich nicht unbedingt schreiben.
Die Wikipedia-Seiten zu den Browsern und auch zu Themen wie "Browserkrieg" sind da sehr aufschlussreich (Vorsicht aber vor einseitiger Darstellung -- und Wikipedia zitiert man nicht) und enthalten auch weiterführende Links (in den Quellenangaben). Kurzversion: Um die Jahrtausendwende (und maßgeblich auch schon davor) bestand ein Verdrängungswettbewerb zwischen dem Netscape Navigator und dem IE. Um den zu gewinnen, haben die Browser teilweise auf einzigartige, dem eigenen Browser vorbehaltene Features gesetzt, um sich einen Vorteil zu verschaffen (etwa durch spezielle Tags und sicher auch durch Technologien wie ActiveX). In dem Zusammenhang ist vielleicht in aktuellem Kontext auch Microsofts Silverlight interessant bzw. die Technologien,
die der neue IE 9 unterstützen oder auch nicht unterstützen wird. Das sind teilweise wahrscheinlich ähnlich strategische Überlegungen wie die Weigerung von Apple, Flash zu unterstützen (auf dem iPhone und iPad, wenn ich mich recht erinnere).
Abgesehen davon hat Microsoft in sämtlichen Kompatibilitätsbelangen stark aufgeholt. Und ich behaupte mal, als der IE 6 herauskam, war er hinsichtlich der Unterstützung von Webstandards (zum Beispiel CSS) ganz vorne mit dabei. Um den Beitrag aber nicht auf einer zu positiven Note enden zu lassen: Nachdem Microsoft das Browsermonopol errungen hatte, haben sie sich schon drauf ausgeruht.