Ein geschäftlicher Fall für die Abschaffung von Internet Explorer

Ollie Williams - 28. Oktober 2019

Die Kluft zwischen Internet Explorer (IE) 11 und jedem anderen großen Browser wird immer größer. Die Unterstützung für einen technologisch veralteten Browser zu gewährleisten, bedeutet einen übermäßigen Zeit- und Frustrationsaufwand für die Entwicklung. Tests werden zur Plage. Fehlerbehebungen rücken in den Fokus. Entwickler möchten IE seit Jahren aufgeben, aber ist es jetzt finanziell ratsam, dies zu tun?

Zuerst einmal: Wir sprechen hier von einem toten Browser

Die Entwicklung von IE wurde 2015 eingestellt. Microsoft Edge wurde als sein Nachfolger veröffentlicht, und Microsoft kündigte an, dass „die neuesten Funktionen und Plattform-Updates nur in Microsoft Edge verfügbar sein werden“.

Edge war in jeder Hinsicht eine massive Verbesserung gegenüber IE. Dennoch war Edge selbst so weit hinter der Implementierung von Webstandards zurück, dass Microsoft kürzlich bekannt gab, Edge von Grund auf neu zu entwickeln, basierend auf derselben Technologie, die auch Google Chrome antreibt.

Und doch diskutieren wir hier, ob wir den obsoleteren, alten Verwandten von Edge unterstützen sollen. Internet Explorer ist so schlecht, dass ein Principal Program Manager des Unternehmens einen Artikel mit dem Titel The perils of using Internet Explorer as your default browser (Die Gefahren der Nutzung des Internet Explorers als Standardbrowser) im offiziellen Microsoft-Blog veröffentlicht hat. Es ist ein Browser, der in der Zeit eingefroren ist; das Web ist weitergezogen.

Newspaper headlines from 2015
Publikationen verkünden seit 2015 den Niedergang von IE.

Browser bewegen sich schneller als je zuvor. Betrachten Sie alles, was seit 2015 passiert ist. CSS Grid. Custom Properties. IE11 wird niemals neue Funktionen implementieren. Es ist ein Browser, der in der Zeit eingefroren ist; das Web ist weitergezogen.

Es blockiert Möglichkeiten und fördert Ineffizienz

Die Browserlandschaft hat sich seit der Einstellung des IE durch Microsoft im Jahr 2015 ebenfalls dramatisch verändert. Google Developer Advocate Sam Thorogood hat eine Liste aller Funktionen zusammengestellt, die von jedem Browser außer IE unterstützt werden. Sobald die neue Chromium-Version von Edge veröffentlicht wird, wird sich diese Liste weiter verlängern. Zusammengenommen handelt es sich um einen gigantischen Funktionsumfang, der neue HTML-Elemente, neue CSS-Eigenschaften und neue JavaScript-Funktionen umfasst. Viele moderne JavaScript-Funktionen können durch die Verwendung von Polyfills und Transpilierung mit Legacy-Browsern kompatibel gemacht werden. Jede CSS-Funktion, die in den letzten vier Jahren zum Web hinzugefügt wurde, wird jedoch im IE überhaupt nicht funktionieren.

Lassen Sie uns tiefer in die Funktionen eintauchen, die wir heute haben, und wie sie von IE11 betroffen sind. Vielleicht am bemerkenswertesten ist, dass wir nach Jahrzehnten des Herumdokterns an Layouts im Web endlich CSS Grid haben, das responsive Layouts massiv vereinfacht. Zusammen mit CSS Custom Properties, object-fit, display: contents und intrinsischem Sizing sind dies alles Beispiele für nützliche CSS-Funktionen, die eine Website wahrscheinlich kaputt aussehen lassen, wenn sie nicht unterstützt werden. In den letzten fünf Jahren gab es einige wichtige Ergänzungen zu CSS. Es ist das kumulative Gewicht von so vielen Dingen, das IE genauso untergräbt wie eine einzelne Killerfunktion.

Während sich viele Ergänzungen zum Web in den letzten fünf Jahren auf Layout und Styling bezogen haben, gab es auch enorme Fortschritte in der Funktionalität, wie z. B. Progressive Web Apps. Nicht jede moderne API ist für Websites, die rückwärtskompatibel bleiben müssen, unbrauchbar. Die meisten können in eine if-Anweisung eingepackt werden.

if ('serviceWorker' in navigator) {
// do some stuff with a service worker
} else {
  // ???
}

Sie werden jedoch eine sehr andere Erfahrung für IE-Benutzer liefern. Die Unterstützung für IE wird zunehmend die Auswahl der verfügbaren Tools einschränken, da Bibliotheken und Frameworks moderne Funktionen nutzen.

Nehmen Sie zum Beispiel diese Ankündigung von Evan You zur Veröffentlichung von Vue 3

Die neue Codebasis zielt derzeit nur auf Evergreen-Browser ab und setzt grundlegende native ES2015-Unterstützung voraus.

Die Vue 3-Codebasis verwendet Proxies – eine JavaScript-Funktion, die nicht transpiliert werden kann. MobX ist ein weiteres beliebtes Framework, das ebenfalls auf Proxies angewiesen ist. Beide Projekte werden weiterhin abwärtskompatible Versionen pflegen, aber ihnen fehlen die Leistungsverbesserungen und API-Schönheiten, die durch das Abschalten von IE erzielt werden. Pika, ein großartiger neuer Ansatz für die Paketverwaltung, erfordert die Unterstützung von JavaScript-Modulen, die in IE nicht unterstützt werden. Dann gibt es noch Shadow DOM – ein standardisierter Teil der modernen Webplattform, der unwahrscheinlich ist, dass er gracefully abgebaut wird.

Die Unterstützung erfordert immensen Aufwand

Bei der Bewertung des zusätzlichen Arbeitsaufwands zur Gewährleistung der Abwärtskompatibilität für einen veralteten Browser wie IE11 ist die lange Liste nicht implementierter Funktionen nur ein Teil des Problems. Browser sind unglaublich komplexe Softwarestücke und trotz Webstandards sind Browser inkonsistent. IE war schon lange der fehleranfälligste Browser, der am weitesten von den Webstandards abweicht. Flexbox (eine Technologie, die Entwickler seit 2013 verwenden) ist beispielsweise auf caniuse.com als teilweise unterstützt in IE aufgeführt, aufgrund der „großen Anzahl vorhandener Fehler“.

IE bietet auch bei weitem das schlechteste Debugging-Erlebnis – mit nur einer primitiven Version von DevTools. Das macht die Fehlerbehebung in IE zweifellos zum frustrierendsten Teil für Entwickler und kann enorm zeitaufwendig sein – und Organisationen von der Auslieferung von Funktionen abhalten.

Es gibt einen Unterschied zwischen Unterstützung – dafür sorgen, dass etwas funktional und „gut genug“ aussieht – und Optimierung, bei der man bestrebt ist, das bestmögliche Erlebnis zu bieten. Dies schafft jedoch einen potenziell verwirrenden Graubereich. Es kann unterschiedliche Meinungen darüber geben, was für IE als „gut genug“ gilt. Dieser Kommentar zu IE9 von Dave Rupert ist immer noch relevant

Die Grenze dessen, was als „kaputt“ gilt, ist unscharf. Wie visuell kaputt muss es sein, um funktional kaputt zu sein? Ich suche nach billigen Lösungen, aber dies wird dadurch erschwert, dass das externe QA-Team diese Nuance nicht beachtet, ein Fehler ist ein Fehler, der protokolliert und mir zugewiesen wird und den Backlog verschmutzt… Egal, ob es sich um Polyfills, abtrünnige If-Anweisungen, Phantomstile oder QA-Abpraller handelt; es fallen Kosten und technische Schulden an, wenn diese Website auf einer immer schwindenderen Menge von Browsern gerendert wird.

Wenn Sie den Ansatz verfolgen, IE funktional zu unterstützen, auch wenn es nicht bis ins letzte Detail ist, sind Sie trotzdem an Polyfills, Transpilierung, Präfixe und Tests gebunden, zusätzlich zu allem anderen.

Es wurde bereits von vielen Top-Websites aufgegeben

Website logos

Beliebte Websites, die die Unterstützung für IE offiziell eingestellt haben, sind unter anderem YouTube, GitHub, Meetup, Slack, Zendesk, Trello, Atlassian, Discord, Spotify, Behance, Wix, Huddle, WhatsApp, Google Earth und Yahoo. Sogar einige von Microsofts eigenen Produkten, wie Teams, haben die Unterstützung für IE stark reduziert.

Whats App unsupported browser screen

Twitter zeigt IE-Benutzern ein Banner an, das darauf hinweist, dass sie nicht das beste Erlebnis erhalten, und leitet die Benutzer zu einer viel älteren Version der Twitter-Website weiter. Wenn wir an disruptive Unternehmen denken, die das Beste im Webdesign vorantreiben, dann brechen Monzo, Apple Music und Stripe in IE auf schreckliche Weise zusammen, während sie auf ein Warnbanner verzichten.

Stripe website viewed in Internet Explorer
Stripe bietet keine Unterstützung oder Warnung.

Warum der neue, von Chromium angetriebene Edge-Browser wichtig ist

Die Nutzung von IE hat nach einem anfänglichen dramatischen Rückgang einen langsameren Abwärtstrend gezeigt. Es gibt einen Hauptgrund, warum der Browser weiterhin bestehen bleibt: alte Geschäftsanwendungen, die in nichts anderem funktionieren. Viele große Unternehmen nutzen immer noch Anwendungen, die auf nicht standardisierten und inzwischen veralteten APIs basieren. Glücklicherweise scheint der neue Edge dieses Problem zu lösen. In einem aktuellen Beitrag erklärte das Microsoft Edge Team, wie diese Unternehmen IE endlich aufgeben können.

Das Team hat den Internet Explorer-Modus mit dem Ziel entwickelt, eine 100%ige Kompatibilität mit Websites zu gewährleisten, die heute in IE11 funktionieren. Der Internet Explorer-Modus erscheint visuell so, als sei er nur ein Teil des nächsten Microsoft Edge… Durch die Nutzung der Enterprise Mode-Website-Liste können IT-Profis Benutzern des nächsten Microsoft Edge ermöglichen, einfach auf IE11-abhängige Websites zuzugreifen, und diese werden einfach funktionieren.

Nachdem ich die Beta-Version mehrere Monate lang genutzt habe, kann ich sagen, dass es ein wirklich großartiger Browser ist. Wage ich zu sagen, besser als Google Chrome? Microsoft pusht ihn bereits stark. Edge ist der Standardbrowser für Windows 10. Hunderte Millionen Geräte führen immer noch frühere Versionen des Betriebssystems aus, für die Edge nicht verfügbar war. Die neue, von Chromium angetriebene Version bringt die Unterstützung für Windows 7 und 8. Für Benutzer, die auf alten Geräten mit alten Betriebssystemen festsitzen, gibt es keinen Grund mehr, IE zu verwenden. Windows 7, immer noch eines der beliebtesten Betriebssysteme der Welt, wird im Januar 2020 eingestellt, was ebenfalls zur Einführung von Edge beitragen sollte, wenn Einzelpersonen und Unternehmen auf Windows 10 umsteigen.

Mit anderen Worten: Es ist der perfekte Zeitpunkt, die Unterstützung einzustellen.

Leistungskosten

Alle aktuellen Browser unterstützen ECMAScript 2015 (die neueste Version von JavaScript) – und das schon seit einiger Zeit. Die Transpilierung von JavaScript zu einer älteren (und langsameren) Version ist in der Branche immer noch üblich, aber zu diesem Zeitpunkt wird sie nur noch für Internet Explorer benötigt. Dieser Prozess, der es Entwicklern ermöglicht, moderne Syntax zu schreiben, die auch in IE funktioniert, beeinträchtigt die Leistung negativ. Philip Walton, ein Ingenieur bei Google, sagte dazu Folgendes:

Größere Dateien dauern länger zum Herunterladen, aber sie dauern auch länger zum Parsen und Auswerten. Beim Vergleich der beiden Versionen von meiner Website waren die Parse/Eval-Zeiten für die Legacy-Version auch konstant etwa doppelt so lang. […] Die Kosten für das Ausliefern von viel unnötigem JavaScript an Low-End-Mobile-Browser können erheblich sein! Wir (im Chrome-Team) haben zahlreiche Fälle von Polyfill-Bloat gesehen, die die Gesamtstartzeit von Websites auf Low-End-Mobilgeräten um Sekunden verlängern.

Es ist möglich, einen differentiellen Serving-Ansatz zu verfolgen, um dieses Problem zu umgehen, aber es erhöht die Komplexität der Build-Tools geringfügig. Ich bin mir nicht sicher, ob es sich lohnt, wenn man das Gesamtbild betrachtet, was es bereits erfordert, um IE zu unterstützen.

Noch ein Beispiel: IE erfordert eine riesige Menge an Polyfills, wenn Sie moderne APIs nutzen möchten. Dies beinhaltet normalerweise das Senden von zusätzlichem, unnötigem Code an andere Browser. Ein alternativer Ansatz, polyfill.io, kostet eine zusätzliche, blockierende HTTP-Anfrage – selbst für moderne Browser, die keine Polyfills benötigen. Beide Ansätze sind schlecht für die Leistung.

Was CSS betrifft, so verringern moderne Funktionen wie CSS Grid die Notwendigkeit sperriger Frameworks wie Bootstrap. Das sind viele zusätzliche Bites, die wir nicht einsparen können, wenn wir IE unterstützen müssen. Andere moderne CSS-Eigenschaften können das ersetzen, was traditionell mit JavaScript gemacht wird, auf eine Weise, die weniger fragil und leistungsfähiger ist. Es wäre ein Segen für Leistung und Kosten, diese zu nutzen.

Lassen Sie uns über Geld sprechen

Eine (zu vereinfachende) Berechnung wäre, die Kosten für die Entwicklerzeit, die für die Behebung von IE-Fehlern aufgewendet wird, und den Verlust an Produktivität durch die Umgehung von IE-Problemen mit dem Umsatz von IE-Benutzern zu vergleichen. Es sei denn, Sie sind ein großes Unternehmen, das signifikante Einnahmen aus IE generiert, ist es eine einfache Entscheidung. Für Großkonzerne sind die Einsätze viel höher. Websites im Umfang von Amazon beispielsweise generieren möglicherweise zig Millionen Dollar von IE-Nutzern, auch wenn diese weniger als 1 % des gesamten Traffics ausmachen.

Ich würde argumentieren, dass jede Website dieser Größe mehr davon hätte, die Unterstützung einzustellen, da sie Ladezeiten und Absprungraten reduziert, die beide noch wichtiger für den Umsatz sind. Für große Unternehmen stellt sich nicht die Frage, ob es sich lohnt, etwas mehr Entwicklungszeit für die Gewährleistung der Abwärtskompatibilität aufzuwenden. Die Frage ist, ob Sie riskieren, das Erlebnis für die überwiegende Mehrheit der Benutzer zu beeinträchtigen, indem Sie Kompromisse bei der Leistung und den Möglichkeiten moderner Funktionen eingehen. Indem Sie den Entwicklern keinen Anreiz bieten, sich für neue Browserfunktionen zu *interessieren*, werden sie daran gehindert, zu innovieren und das beste Produkt zu entwickeln, das sie können.

Es ist ein enorm wertvolles Gut, Entwickler zu haben, die so neugierig und fragend sind, dass sie neue Technologien erkunden und auf dem Laufenden bleiben. Durch die Unterstützung von IE entfremden Sie die Entwickler von Neuem. Es ist entmutigend, zu versuchen, mit Neuem Schritt zu halten, nur um von Funktionen zu erfahren, die wir nicht nutzen können. Aber hier geht es nicht darum, die Entwicklererfahrung über die Benutzererfahrung zu stellen. Wenn Sie die Entwicklererfahrung verbessern, können Entwickler ihre Produktivität steigern und Features ausliefern – Features, die Benutzer wünschen.

Webentwicklung ist hart

Anfang dieses Jahres wurde berichtet, dass das Autovermietungsunternehmen Hertz Accenture wegen zweistelliger Millionenbeträge verklagt. Accenture ist ein Fortune Global 500-Unternehmen mit einem Vermögen von Milliarden von Dollar. Dennoch behauptete Hertz, dass Accenture trotz eines schwindelerregenden Preisschilds „niemals eine funktionierende Website oder mobile App geliefert hat“.

Laut The Register

Zu den schwindelerregendsten Anschuldigungen in Hertzs eingereichter Klage gehört, dass Accenture kein responsives Design integriert hat… Obwohl die Frist um fünf Monate überschritten wurde und keine vollständigen Elemente vorhanden waren und der Code fehlerhaft war, teilte Accenture Hertz mit, dass es zusätzlich 10 Millionen Dollar kosten würde – zusätzlich zu den bereits gezahlten 32 Millionen Dollar –, um das Projekt abzuschließen.

Die Affäre Accenture/Hertz ist ein Beispiel für erstaunliche Unfähigkeit, aber sie war auch eine deutliche Erinnerung daran, dass Webentwicklung schwierig ist. Dennoch nutzen die meisten Unternehmen die Dinge, die sie erleichtern, nicht. Microsoft, Google, Mozilla und Apple investieren aus gutem Grund massive Geldbeträge in die Entwicklung neuer Browserfunktionen. Verbesserungen und Innovationen, die in den letzten Jahren in Browsern eingeführt wurden, haben die Möglichkeiten der Webplattform erweitert und gleichzeitig das Leben der Entwickler erleichtert.

Schnell agieren und Dinge ausliefern

Die Entwicklungsbranche liebt Begriffe – wie agil und disruptiv –, die auf eine leichte, innovative Vorgehensweise hindeuten. Doch anstatt sich auf das Ausliefern von Funktionen und die Schaffung einer großartigen Benutzererfahrung für die überwiegende Mehrheit der Benutzer zu konzentrieren, bedienen wir einen einzelnen, veralteten Legacy-Browser. Alle Unternehmen, für die ich gearbeitet habe, sprachen ständig über technische Schulden. Das Gewicht von Legacy-Code wird zu Recht als etwas wahrgenommen, das Entwickler verlangsamt. Indem wir nicht von dem profitieren, was moderne Browser zu bieten haben, ist der Code, den wir heute schreiben, im Moment seiner Entstehung bereits Legacy-Code. Indem Sie für das moderne Web schreiben, erhöhen Sie nicht nur die Produktivität heute, sondern erstellen auch Code, der in Zukunft leichter zu warten ist. Aus langfristiger Sicht ist dies die richtige Entscheidung.

Rekrutierung und Bindung

Die Zufriedenheit der Entwickler wird von einigen Stakeholdern möglicherweise nicht als wichtig für das Endergebnis angesehen. Die Rekrutierung guter Ingenieure ist jedoch notorisch schwierig. Die durchschnittliche Verweildauer ist im Vergleich zu anderen Branchen gering. Nichts kann die Moral der Entwickler mehr beeinträchtigen als ein Tag IE-Debugging. In einer Umfrage unter 76.118 Entwicklern, die von Mozilla durchgeführt wurde, wurde „die Unterstützung spezifischer Browser (z. B. IE11)“ als das Frustrierendste in der Webentwicklung eingestuft. „Vermeidung oder Entfernung einer Funktion, die browserübergreifend nicht funktioniert“, landete auf Platz drei, während das Testen über verschiedene Browser hinweg auf Platz vier kam. Durch die Minimierung dieser Frustrationen kann die Entscheidung, die Unterstützung für IE einzustellen, bei der Einstellung und Bindung von Ingenieuren helfen.

IE-Benutzer können Ihre Website immer noch aufrufen

Wir leben in einer Multi-Device-Welt. Einige Benutzer werden das Glück haben, einen vom Arbeitgeber bereitgestellten Computer, einen persönlichen Laptop *und* ein Tablet zu besitzen. Smartphones sind allgegenwärtig. Wenn ein IE-Benutzer Probleme mit Ihrer Website hat, kann er die Transaktion auf einem anderen Gerät abschließen. Oder er könnte einen anderen Browser öffnen, da Microsoft Edge auf Windows 10 vorinstalliert ist.

Die Realität des Cross-Browser-Testings

Wenn Sie einen gründlichen und rigorosen Cross-Browser-Testprozess haben, der immer befolgt wird, herzlichen Glückwunsch! Das ist meiner Erfahrung nach selten. Viele Unternehmen testen nur in Chrome. Indem das Cross-Browser-Testing weniger mühsam wird, ist es wahrscheinlicher, dass Entwickler und Stakeholder es tatsächlich durchführen. Das Eliminieren aller Fehler in populären Browsern ist monetär weitaus lohnender, als sich um IE zu kümmern.

Wann planen Sie, die IE-Unterstützung einzustellen?

Unweigerlich werden Ihre eigenen Analysen der entscheidende Faktor sein, ob das Einstellen der IE-Unterstützung für Sie sinnvoll ist. Die Browsernutzung variiert weltweit stark – von fast 10 % in Südkorea bis weit unter einem Prozent in vielen Teilen der Welt. Selbst wenn Sie heute der Meinung sind, dass es für Ihre spezielle Website zu früh ist, sollten Sie Ihre Analysen nach der Einführung des neuen Microsoft Edge erneut prüfen.