Jim Nielsens Mutter konnte eine Website nicht öffnen. Jim arbeitete daran, das Problem zu bestätigen und dokumentierte, wie er der Sache auf den Grund ging
„[…] das kann kein Browserproblem sein. Es ist nicht so, dass meine Mutter Internet Explorer benutzt! Sie hat relativ moderne Technik: ein iPad (Safari) und eine Chromebox (Google Chrome).“
Aber je mehr ich darüber nachdachte – eine Website, die auf manchen Geräten funktioniert, aber auf anderen nicht –, desto mehr wurde mir klar, dass es ein Browserproblem sein musste.
Also sah ich mir die Version von Chrome auf dem Computer meiner Eltern an. Version 76! Ich wusste, dass wir 2022 bei Nummer Neunzig waren, also vermutete ich, dass das die Ursache war. „Ich aktualisiere einfach Chrome“, dachte ich.
Wie sich herausstellte, kann man das nicht.
Ich feiere die Idee von Evergreen-Browsern absolut. Es ist eines der wichtigsten Dinge, das in den letzten Jahren im Web passiert ist. Es ermöglicht eine viel schnellere Entwicklung des Webs, und alle Browser nutzen sie.
Aber selbst Browser, die ich als Evergreen betrachte, *sind es nicht immer*. Letztendlich begrenzt die Hardware die Software. Die Logik ist nicht so einfach wie „wenn Chrome, dann Evergreen“, zum Beispiel.
Safari aktualisiert sich normalerweise über Systemupdates, aber in diesem Fall war es ein iPad Air der ersten Generation, das auf iOS 12 stecken geblieben war, und weitere Updates waren für das, was Apple als „Vintage“-Gerät betrachtet, nicht mehr möglich. Gleiches gilt für ein Chromebook, das bei Chrome 76 stecken geblieben ist.
Ein paar kleine Optional Chaining Fragezeichen (?) haben die ganze verdammte Seite kaputt gemacht. Unglücklich. Diese „zwei Bundles bereitstellen, modern und Legacy“-Idee ist immer noch ziemlich clever.
Apropos Mütter: Ich wurde an eine ältere Folge von ShopTalk erinnert, die wir mit Paul Irishs Mutter gemacht haben und die viel von dieser „normale Leute, die das Internet benutzen“-Atmosphäre hat.
Danke Chris. Ein sehr zeitnaher Beitrag!
Wir werden demnächst alle IE11-spezifischen JS-Polyfills, PostCSS (für CSS Grid) und Sass-Code aus unserer Codebasis bei der Arbeit entfernen. Hurra!
Wir werden jedoch weiterhin die differentielle Bündelungsimplementierung verwenden, wie im von Ihnen verlinkten Artikel von Philip Walton beschrieben.
Wir verwenden einen einfachen Feature-Detection-Test für Fetch & IntersectionObserver APIs. Wenn dieser Test fehlschlägt, gehen wir davon aus, dass der Browser Legacy ist, und liefern daher transpilierten ES5-Code und eine separate „polyfills.js“-Datei.
Schön und einfach.
Und deshalb minimiere ich Code, füge Polyfills hinzu, füge nie Rohcode ein. Rollup zu Bibliotheken, Webpack zu ganzen Seiten und Browserlist die letzten 2 Browser. Solche grundlegenden Behandlungen verhindern Probleme.
Obwohl ich zustimme, dass wir uns bemühen sollten, Progressive Enhancement so weit wie möglich zu nutzen, gibt es Grenzen dessen, was ein Entwickler tun kann.
Ich würde den Finger wieder auf diese Unternehmen mit Billionen von Dollar richten. In diesem Fall Apple und Google.
Sie produzieren Einweggeräte, um ihren eigenen Umsatz anzukurbeln. Sie hören auf, Updates und Sicherheitspatches nach sehr kurzer Zeit herauszugeben, nur damit sie Sie in ihr nächstes bestes Ding locken können…
Microsoft bekommt viel Kritik und negative Kommentare, aber es ist das einzige Unternehmen, das sein Betriebssystem viele Jahre lang unterstützt. Sie veröffentlichen sogar Sicherheitspatches für nicht mehr unterstützte Versionen, wenn nötig.
Entwickler sollten nicht für die schlechten Praktiken dieser Unternehmen zur Rechenschaft gezogen werden. Ich denke, es ist höchste Zeit, dass Entwickler den Druck erhöhen und diese Unternehmen unter Druck setzen, ihre Sache in Ordnung zu bringen. Sie wollten die Zügel des Webs, sie müssen die damit verbundenen Verantwortlichkeiten übernehmen…
Ich habe irgendwie das Gefühl, dass dieser Artikel zu schnell mit dem Finger auf die Website-Entwickler zeigt, anstatt auf Google, das seine Chrome OS-Geräte länger unterstützen sollte, als sie es tun (insbesondere für ältere Geräte), und auf Apple, das wirklich aufhören sollte, Apps und insbesondere Safari mit dem Betriebssystem selbst zu bündeln.