Was wir uns gewünscht haben
Veröffentlicht: 2022-03-10Ich glaube, wir steuern auf Ärger zu, obwohl ich es nicht mit Sicherheit sagen kann. Ärger – Ärger, den ich kenne . Die Auffahrt dazu allerdings; Davon habe ich nur gehört. Ich mache das erst seit zehn Jahren. Beim letzten Mal habe ich den ganzen Vorsprung verpasst. Was ich mit Sicherheit sagen kann – was ich aus Erfahrung weiß – ist, dass mir noch nie ein Wunsch aus Wut erfüllt wurde, ohne es zu bereuen.
Zehn Jahre (das sage ich gerne) sind eine ziemlich lange Zeit. Als ich mich zum ersten Mal in ein Webdesign-Praktikum vorgewagt habe, war der gute alte Internet Explorer bereits eine Lachnummer.
„Wenn Sie bemerken, dass ein Teil Ihres Inhalts erscheint und verschwindet und Teile der Seite nur halb gezeichnet werden, sind dies gute Hinweise darauf, dass ein Element ein Layout erfordert. [...] EinhasLayout
Fix beinhaltet nichts anderes als das Deklarieren einer CSS-Eigenschaft, die bewirkt, dass ein Element ein Layout erhält, wenn es normalerweise standardmäßig kein Layout hätte.“
— Der Internet Explorer hat die Layout-Eigenschaft
Ich hasste IE. Ich habe das Gefühl, dass ich das jetzt verkraften kann. Ich versuchte es nicht; Das habe ich wirklich aufrichtig getan. Ich würde den Leuten sagen, dass es Spaß gemacht hat, zu unterstützen, wenn Sie es glauben können.
Als alle anderen Browser immer einfacher zu handhaben waren, versuchte ich, mich davon zu überzeugen, dass es zumindest noch eine Herausforderung für den schrulligen alten IE gab. Das wurde sogar zu einer Art Stolz: Ich war so gut darin geworden, obskure IE-Probleme zu beheben, dass ich gelernt hatte, ihnen im Laufe meiner täglichen Entwicklung auszuweichen, und nichts (naja, weniger) vor dem großen „Open“ zu fürchten hatte es in IE und sehen, was brach“ Phase.
Es macht irgendwie Spaß. Spaß . Das war die Lüge, die ich mir selbst erzählte.
/* Fixes #2588: When Windows Phone 7.5 (Mango) tries to calculate a numeric opacity for a select (including “inherit”) without explicitly specifying an opacity on the parent to give it context, a bug appears where clicking elsewhere on the page after opening the select will open the select again. */
— jQuery Mobile-Quelle
Ich hasste es. Ich hasste IE in jeder seiner Inkarnationen. Ich hasste es genauso wie alle anderen.
„Internet Explorer 6 hat einen rätselhaften Fehler, der mehrere schwebende Elemente betrifft; Textzeichen aus dem letzten der Float-Elemente werden manchmal unter dem letzten Float dupliziert. ... Die direkte Ursache ist nichts weiter als gewöhnliche HTML-Kommentare wie<!-- end left column -->
, eingeklemmt zwischen aufeinanderfolgenden Floats.“
— Explorer 6 Fehler bei doppelten Zeichen
Was es war, war eine Verschwendung meiner gottverdammten Zeit. All die Stunden, die ich über eine nervige virtuelle Maschine gebeugt verbracht habe – neu laden, warten, einen unsinnigen Fix auf einen unsinnigen Fehler werfen, neu laden, abstürzen , IE erneut öffnen, warten, doppelt prüfen, dass Caching kein Faktor war, neu laden, warten, und wiederholen. Ich hätte so viel mehr mit meiner Zeit machen können – ich hätte so viel mehr lernen können.
Ich war mir sicher, dass es nicht nur meine Arbeit und nicht nur das Web, sondern auch mich als Entwickler zurückhielt. In diesem zweiten Punkt lag ich wohl nicht ganz falsch – all das obskure Wissen über IE 6-7-Browserfehler, das ich angesammelt habe, ist jetzt völlig nutzlos. Alles, was ich dafür zeigen muss, ist ein unfreiwilliges Zucken beim Wort „Filter“, eine unergründliche Vorliebe für padding
statt margin
und eine tiefsitzende, aber weitgehend unbegründete Angst vor z-index
.
„… zusätzliche Leerzeichen führen dazu, dass die falschen Stile erfasst werden, wenn der tatsächliche Klassenname ein Teilstring (oder Superstring) eines anderen Klassennamens ist.“
— IE5/Mac Whitespace-Parsing-Bug
Ich wünschte, es würde verschwinden. Deinstalliert von einem cleveren und weit verbreiteten Virus, der gesetzlich verboten ist, beschloss Microsoft schließlich, die Verluste seiner schäbigen Rendering-Engine zu reduzieren und zu Firefox' Rendering-Engine Gecko zu wechseln – was auch immer – , damit es einfach verschwindet . Aber nein. Das Web entwickelte sich weiter und wir Entwickler schlugen weiter, Boote gegen den Strom, unaufhörlich in die Vergangenheit zurückgetragen.
Chrome kam, Firefox wurde immer besser, neue Funktionen wurden eingeführt, die aufregenden und endlosen Möglichkeiten, die das Aufkommen von responsivem Webdesign bot, breiteten sich vor uns aus, und denken Sie auch (kurz beiseite) daran, dass Sie nur ein paar Tage Zeit haben werden damit alles mehr oder weniger im alten IE funktioniert, also lassen Sie sich nicht zu sehr mitreißen.
„WENN Sie IE8 verwenden, UND Sie den oben beschriebenen Ansatz der geordneten CSS-Listennummerierung verwenden, UND der HTML-Code mit den Klassen, die die CSS-Attributecounter-reset
undcounter-increment
verwenden, beim Laden der Seite VERSTECKT wird, DANN immer dann, wenn dies verborgen ist HTML angezeigt wird, sind ALLE automatischen Nummern NULL, ABER NUR WENN DIE CSS:hover
hover PSEUDO-KLASSE AUF DIESER SEITE VERWENDET WIRD!“
— Der „Hover“-Bug im IE8: Der tollste IE-Bug aller Zeiten?
Heutzutage ist es schwer vorstellbar, eine solche Frustration zu erleben, zumindest für uns relativ alte Hasen. Um nicht zu sagen, dass heutzutage auch nicht unglaublich viel Arbeit damit verbunden ist, die Dinge browserübergreifend zu optimieren – ich weiß nur zu gut, dass es einen gibt. Aber es ist schwer, nicht den gelegentlichen Stich zu spüren: „Zu meiner Zeit hatten wir nur Gleitkommazahlen, und lassen Sie mich Ihnen etwas über den doppelten Randfehler im IE erzählen “, wenn Sie von einem kleinen Unterschied in der Funktionsweise von CSS Grid von einem Browser hören zum anderen.
Ich habe mich geirrt; Ich möchte in diesem Punkt klar sein. Es ist nicht falsch, frustriert zu sein. Ich denke nicht, dass irgendjemand dafür verantwortlich gemacht werden sollte, dass er mit diesen alten Browserfehlern frustriert ist, genauso wie ich nicht denke, dass jemand für seine Frustration mit irgendeinem Aspekt der Webentwicklung jetzt verantwortlich gemacht werden sollte. Nein, ich lag falsch mit der Schlussfolgerung, zu der mich die Wut brachte: der Wunsch, Trident niedergebrannt und die Erde, wo sie einst stand, zu sehen.
Ich vermute, dass aus dieser gesalzenen Erde nur eine dramatisch-ironische Sache erwächst: dieselben Frustrationen, neu geboren, für eine neue Generation von Webentwicklern. Als ich meine Karriere begann, nur wenige Jahre nach den Browser-Kriegen, hatten diese Samen bereits Wurzeln geschlagen. Denn eine Zeit lang – eine Zeit vor meiner eigenen – haben wir Webentwickler Netscape auf die gleiche Weise verflucht. Der schwächere, fehlerhaftere, unbestreitbar schlechtere Browser. Aber Internet Explorer – Entwickler liebten diesen Browser. Und sie wünschten, diese anderen Browser – die schlechten Browser – würden einfach verschwinden : deinstalliert von einem schlauen und weit verbreiteten Virus, gesetzlich verboten, beschloss Netscape schließlich, die Verluste seiner schäbigen Rendering-Engine zu reduzieren und auf die Rendering-Engine des IE, Trident – was auch immer – umzusteigen lass es verschwinden . Diese unergründlichen Fehler im Internet Explorer sind nicht zufällig oder fahrlässig aufgetreten. Sie kamen zustande, weil Internet Explorer gewonnen hatte, und wir liebten es, weil wir gewonnen hatten.
Sehen Sie, unsere Frustration und unsere Wut haben uns angelogen, wie sie es normalerweise tun. Sie sagten uns, dass die Unterstützung dieser anderen, schlechteren Browser nicht nur unsere Arbeit und nicht nur das Web, sondern auch uns als Entwickler zurückhält. Was es war, war eine Verschwendung unserer gottverdammten Zeit. Also haben wir uns eingeredet, dass es nicht nur zu unserem eigenen Besten ist, sondern zum Wohle des gesamten Webs .
Wir haben IE nur etwas schwerer gewogen. Wir gaben ihm bei unseren Entscheidungen nur ein wenig mehr Mitspracherecht. Und so spielte Microsoft mit so vielen Chips seine Karten entsprechend aus – wer könnte es ihnen verübeln? Jeder hat zuerst Websites für sie erstellt, die anderen dann. Ihr Wort war kein Gesetz , aber es war sicherlich mehr als eine Andeutung . Sicher, sie wichen hier und da (nur ein bisschen) von Webstandards ab, aber war etwas, das von The Biggest Browser implementiert wurde, nicht sowieso eine Art De-facto -Standard? Außerdem hat die Unterstützung des besseren, schnelleren und einfacheren Browsers dem Web selbst einen Dienst erwiesen! Gemeinsam mit Microsoft haben wir das Web vorangetrieben! Alle gewinnen.
Die Rendering-Engine, die heute Microsofts Edge-Browser antreibt – EdgeHTML – ist eine Abzweigung des knorrigen alten Trident. Es ist sicherlich eine abgespeckte und stark verbesserte Trident-Gabel, aber sie wird, sagen wir mal, nicht allgemein nach ihrem eigenen Wert beurteilt. Das EdgeHTML-Team hat immer mit ein paar Nachteilen gearbeitet: Der erste war technischer Natur, da es enorm viel Zeit und Mühe kostete, mit Safari, Firefox und Chrome gleichzuziehen. Der zweite war emotional. Es waren wir – Sie und ich – abgestumpft von den Jahren des Internet Explorers, die mit kalter Verachtung auf ein fröhliches blaues „e“ in Kleinbuchstaben starrten.
Vor einigen Wochen gab das Edge-Team bekannt, dass es EdgeHTML bald zugunsten von Blink, der Rendering-Engine, die Chrome antreibt, aufgeben würde. Mit dieser Änderung wird die letzte verbleibende Glut von Trident für immer ausgelöscht. Der Wunsch, den ich mit so vielen geteilt hatte, wird endlich erfüllt. Ironischerweise – wie sich herausstellte – wurde EdgeHTML zu einer ziemlich soliden Rendering-Engine.
Blink ist ein Open-Source-Projekt, das von Google geleitet und verwaltet wird. Es unterstützt sowohl Chrome als auch Opera, von denen letztere vor einigen Jahren ihre selbst entwickelte Rendering-Engine aufgegeben haben.
Blink ist mit überwältigendem Abstand die Art und Weise, wie das Web auf der ganzen Welt erlebt wird (und wird es zunehmend sein). Blink ist schnell, stabil, vollgepackt mit modernen Funktionen und – im Vergleich zur Entwicklung für das sich noch entwickelnde EdgeHTML – schmerzlos .
Es mag zu spät geschehen sein, um uns vor diesen uralten IE-Bugs zu retten, aber unsere Arbeit wird jetzt einfacher, da es eine weniger zu unterstützende Rendering-Engine gibt. Sie und ich werden ein wenig mehr von unserer kollektiven Last „aber funktioniert es browserübergreifend“ verlieren. Unsere Projekte werden reibungsloser ablaufen und das Web wird nur noch ein bisschen mehr von dem verlieren, was es früher zurückgehalten hat.
Als Verwalter der Engine, die einen Großteil des Internets antreibt, wird Googles Wort kein Gesetz sein, aber sicherlich mehr als eine Andeutung . Und vielleicht weichen sie im Laufe der nächsten Jahre hier und da (absichtlich oder versehentlich) auf kleinste Weise von Webstandards ab. Aber ist etwas, das von The Biggest Browser implementiert wird, nicht selbst eine Art De-facto-Standard? Außerdem, wie könntest du argumentieren? Mit der Bevorzugung des besseren, schnelleren und leistungsfähigeren Browsers erweist man dem Web selbst schließlich einen Dienst. Gemeinsam mit Google bringen wir das Web voran. Alle werden gewinnen.
Das heißt, solange kleine Standardabweichungen und winzige, nörgelnde Bugs nicht mit der Zeit größer werden – dank der doppelten Kräfte von Entropie und Selbstgefälligkeit. Es sei denn, die Entscheidungen, die wir zum Wohle des Internets getroffen haben (Hand in Hand mit einer notorisch datenschutzfeindlichen Werbefirma), beginnen sich etwas dunkler anzufühlen und ein neuer Schreckgespenst nimmt in unseren Köpfen Gestalt an – es sei denn, wir finden es dass unsere alten Ängste und Frustrationen wieder auferstanden sind (wie ein Phönix, der ein paar hundert Pixel von der Stelle entfernt rendert, an der er sollte, und auf seltsame Weise flackert, wenn Sie scrollen).
Es braucht nicht viel Vorstellungskraft, um zu sehen, wie in den nächsten paar Jahren neuere, aufregendere Rendering-Engines auftauchen. Es braucht ebenso wenig Fantasie, um zu sehen, wie sie an mangelnder Unterstützung scheitern, da wir „den Browser, den alle benutzen“ bevorzugen – zuerst freiwillig, später vielleicht im widerwilligen Dienst an „dem Endergebnis“.
Aber nochmal, ich weiß es nicht. Ich habe das noch nie bei einer Rendering-Engine gesehen. Ich habe gerade die ganze Geschichte gehört, und ich weiß nur aus erster Hand, wie sie endet. Ich kenne das Ende vom Schmerz alter psychischer Narben; von einem unfreiwilligen Zucken bei einigen Code-Bits und einem Muskelgedächtnis, das mich dazu zwingt, andere zu meiden. Ich kenne es von den Witzen in Konferenzgesprächen, die sich immer etwas müde anfühlten, aber dennoch auf eine Weise nachhallten, die ich mir nicht erlauben würde, zuzugeben, und die dennoch einen geheimen Wunsch ansprachen, den ich tief in meinem Herzen trug. Ein bitterer, hasserfüllter Wunsch.
Aber hey, hör zu. Nicht mehr. Nun, ich meine – ich würde niemals. Ich liebe wirklich einen Fehler in einer guten Rendering-Engine. Ich mache.
„CSS-3D-Transformationen mitperspective()
werden von innen nach außen gerendert.“
— bugs.chromium.org
Ich meine, das ist eigentlich ein lustiger Fehler, oder? Wie, Spaß in gewisser Weise . Weißt du?
Es macht Spaß.
Es wird Spaß machen .