Ce que nous souhaitions

Publié: 2022-03-10
Résumé rapide ↬ Un vieux cliché dit que "puissiez-vous obtenir tout ce que vous souhaitez" constitue une malédiction particulièrement insidieuse. Avec Edge passant bientôt au moteur de rendu de Chrome - eh bien, pour le meilleur ou pour le pire, un souhait amer se réalise.

Je pense que nous nous dirigeons vers des ennuis, même si je ne peux pas le dire avec certitude. Problème - problème, je sais . La rampe d'accès, cependant; Je n'ai entendu parler que de ça. Je ne fais ça que depuis dix ans. J'ai raté toute la préparation la dernière fois. Ce que je peux dire avec certitude - ce que je sais par expérience - c'est que je n'ai jamais vu un vœu fait dans la colère se réaliser sans le regretter.

Dix ans (je veux bien le dire) c'est assez long. À l'époque où je me suis lancé pour la première fois dans un stage de conception de sites Web, le bon vieux Internet Explorer était déjà la risée.

"Si vous remarquez qu'une partie de votre contenu apparaît et disparaît, et que des sections de la page ne sont qu'à moitié dessinées, ce sont de bonnes indications qu'un élément nécessite une mise en page. [...] Un correctif hasLayout n'implique rien de plus que de déclarer une propriété CSS qui permet à un élément d'obtenir une mise en page, alors qu'il n'aurait normalement pas de mise en page par défaut.

— La propriété hasLayout d'Internet Explorer

Je détestais IE. Je sens que je peux m'en sortir maintenant. J'ai essayé de ne pas le faire ; Je l'ai vraiment, sincèrement fait. Je dirais aux gens que c'était amusant de soutenir, si vous pouvez le croire.

Alors que tous les autres navigateurs devenaient de plus en plus faciles à gérer, j'ai essayé de me convaincre qu'il y avait au moins encore un défi pour l'excentrique ancien IE. C'est même devenu une sorte de fierté : j'étais devenu si doué pour résoudre les problèmes obscurs d'IE que j'avais appris à les esquiver au cours de mon développement quotidien, ne laissant rien (enfin, moins) à redouter venir le grand "ouvert". dans IE et voyez ce qui s'est cassé ».

Plus après saut! Continuez à lire ci-dessous ↓

C'est amusant, en quelque sorte. Amusant . C'était le mensonge que je me suis dit.

 /* 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. */

— Source jQuery Mobile

J'ai détesté. Je détestais complètement IE, dans chacune de ses incarnations. Je l'ai détesté autant que tout le monde l'a fait.

« Internet Explorer 6 a un bug déroutant impliquant plusieurs éléments flottants ; les caractères de texte du dernier des éléments flottants sont parfois dupliqués sous le dernier flottant. ... La cause directe n'est rien de plus que des commentaires HTML ordinaires, tels que <!-- end left column --> , pris en sandwich entre des flottants qui se succèdent.

- Bug des personnages en double dans l'explorateur 6

Une perte de mon putain de temps, voilà ce que c'était. Toutes ces heures que j'ai passées penché sur une machine virtuelle janky - rechargez, attendez, lancez un correctif absurde sur un bogue absurde, rechargez, plantez , ouvrez à nouveau IE, attendez, revérifiez que la mise en cache n'était pas un facteur, rechargez, attendez, et répétez. J'aurais pu faire tellement plus avec mon temps - j'aurais pu apprendre tellement plus.

J'étais certain que cela ne freinait pas seulement mon travail, et cela ne freinait pas seulement le Web, mais cela me freinait, en tant que développeur. Sur ce deuxième point, je suppose que je n'avais pas tout à fait tort - toutes les connaissances obscures sur les bogues du navigateur IE 6-7 que j'ai accumulées sont désormais inutiles. Tout ce que j'ai à montrer, c'est un tressaillement involontaire au mot "filtre", une préférence impénétrable pour le padding plutôt que la margin et une peur profonde mais largement infondée du z-index .​

"... des espaces blancs supplémentaires entraînent la sélection de styles incorrects si le nom de classe réel est une sous-chaîne (ou une superchaîne) d'un autre nom de classe."

- Bogue d'analyse des espaces blancs IE5 / Mac

J'aurais voulu que ça disparaisse. Désinstallé par un virus intelligent et répandu, interdit par la loi, Microsoft a finalement décidé de réduire les pertes de son moteur de rendu de mauvaise qualité et de passer au moteur de rendu de Firefox, Gecko - peu importe - le fait disparaître . Mais non. Le web n'a cessé d'évoluer et nous, développeurs, avons battu, bateaux à contre-courant, remontés sans cesse dans le passé.

Chrome est arrivé, Firefox n'a cessé de s'améliorer, de nouvelles fonctionnalités ont continué à être déployées, les possibilités passionnantes et infinies offertes par l'avènement de la conception Web réactive se sont étendues devant nous, et aussi (rapidement) rappelez-vous que vous n'aurez que quelques jours pour que tout fonctionne plus ou moins dans l'ancien IE, alors ne vous laissez pas trop emporter.​

"SI vous utilisez IE8, ET vous utilisez l'approche de numérotation de liste ordonnée CSS décrite ci-dessus, ET le HTML qui a les classes qui utilisent les attributs CSS counter-reset et counter-increment est HIDDEN lorsque la page se charge, ALORS chaque fois que cela est caché HTML est affiché, TOUS les numéros automatiques seront ZÉRO, MAIS UNIQUEMENT SI LE CSS :hover PSEUDO-CLASS EST UTILISÉ SUR CETTE PAGE !

- Le bogue « survol » d'IE8 : le bogue IE le plus impressionnant de tous les temps ?

Il est difficile d'imaginer vivre ce genre de frustration de nos jours, du moins pour nous, relativement anciens. Cela ne veut pas dire qu'il n'y a pas une quantité incroyable de travail nécessaire pour régler les choses sur plusieurs navigateurs ces jours-ci aussi - je sais très bien qu'il y en a. Mais il est difficile de ne pas ressentir la douleur occasionnelle de "à l' époque, tout ce que nous avions était des flotteurs, et laissez-moi vous parler du bogue de la double marge d'IE ", lorsque vous entendez parler d'une petite différence dans le fonctionnement de CSS Grid à partir d'un navigateur à un autre.

J'avais tort; Je veux être clair sur ce point. Pas mal d'être frustré. Je ne pense pas que quiconque devrait être blâmé d'être frustré par ces anciens bogues de navigateur, tout comme je ne pense pas que quiconque devrait être blâmé pour sa frustration face à n'importe quel aspect du développement Web maintenant . Non, j'avais tort pour la conclusion à laquelle la colère m'a amené : le désir de voir Trident brûlé et la terre où il se trouvait autrefois salée.

Je soupçonne qu'une seule chose dramatiquement ironique sort de cette terre salée : ces mêmes frustrations, nées de nouveau, pour une nouvelle génération de développeurs Web. Lorsque j'ai commencé ma carrière, quelques années à peine après la guerre des navigateurs, ces graines avaient déjà pris racine. Parce que, pendant un certain temps - un temps avant le mien - nous, les développeurs Web, avons maudit Netscape de la même manière. Le navigateur le plus faible, le plus bogué et incontestablement le pire . Mais Internet Explorer — les développeurs ont adoré ce navigateur. Et ils souhaitaient que ces autres navigateurs — les mauvais navigateurs — disparaissent : désinstallé par un virus intelligent et répandu, interdit par la loi, Netscape a finalement décidé de réduire les pertes de son moteur de rendu de mauvaise qualité et de passer au moteur de rendu d'IE, Trident — peu importe — juste faites-le disparaître . Ces bogues impénétrables d'Internet Explorer ne sont pas arrivés par hasard ou par négligence. Ils sont apparus parce qu'Internet Explorer avait gagné , et nous l'avons adoré pour avoir gagné.

Voyez, notre frustration et notre colère nous ont menti, comme elles le font habituellement. Ils nous ont dit que la prise en charge de ces autres navigateurs pires ne freinait pas seulement notre travail et ne freinait pas seulement le Web, mais cela nous freinait, en tant que développeurs. Une perte de notre putain de temps, voilà ce que c'était. Alors, on s'est dit que ce n'était pas seulement pour notre bien, mais pour le bien de tout le web .

Nous avons pesé IE un peu plus lourdement. Nous lui avons donné un peu plus de poids dans nos décisions. Et donc, détenant autant de jetons, Microsoft a joué ses cartes en conséquence – qui pourrait les blâmer ? Tout le monde a construit des sites Web pour eux en premier, et les autres ensuite. Leur parole n'était pas loi , mais c'était certainement plus qu'une suggestion . Bien sûr, ils ont dévié des standards du Web ici et là (juste un peu), mais après tout, quelque chose mis en œuvre par The Biggest Browser n'était-il pas une sorte de standard de facto de toute façon ? De plus, prendre en charge le navigateur meilleur, plus rapide et plus simple rendait le Web lui-même un service ! Avec Microsoft, nous faisions avancer le Web ! Tout le monde y gagne.

Le moteur de rendu qui alimente le navigateur Edge de Microsoft aujourd'hui - EdgeHTML - est un fork du vieux Trident. C'est une fourche de Trident dépouillée et considérablement améliorée, bien sûr, mais elle n'est pas, disons, universellement jugée sur son propre mérite. L'équipe EdgeHTML a toujours travaillé avec quelques inconvénients : le premier était technique, en ce sens qu'il a fallu énormément de temps et d'efforts pour rattraper Safari, Firefox et Chrome. La seconde était émotionnelle. C'était nous - vous et moi - blasés par des années d'Internet Explorer, fixant un "e" minuscule bleu joyeux avec un froid dédain.

Il y a quelques semaines, l'équipe Edge a annoncé qu'elle abandonnerait bientôt EdgeHTML au profit de Blink, le moteur de rendu qui alimente Chrome. Avec ce changement, les dernières braises restantes de Trident seront éteintes pour toujours. Le souhait que j'avais partagé avec tant de personnes sera enfin exaucé. Ironiquement chronométré – il s'avère que – EdgeHTML devenait un moteur de rendu assez solide.

Blink est un projet open source dirigé et régi par Google. Il alimente à la fois Chrome et Opera, ce dernier ayant également abandonné son moteur de rendu local il y a quelques années.

Par une marge écrasante, Blink est (et sera de plus en plus) la façon dont le Web est vécu dans le monde entier. Blink est rapide, stable, doté de fonctionnalités modernes et, par rapport au développement d'EdgeHTML en constante évolution, indolore .

C'est peut-être arrivé trop tard pour nous sauver de ces anciens bogues d'IE, mais notre travail sera plus facile maintenant qu'il y a un moteur de rendu de moins à prendre en charge. Vous et moi allons perdre un peu plus de notre fardeau collectif « mais est-ce que ça marche avec tous les navigateurs ». Nos projets se dérouleront plus facilement et le Web perdra un peu plus de ce qui le retenait autrefois.

En tant que gardiens du moteur qui alimente une si grande partie du Web, eh bien, la parole de Google ne sera pas une loi , mais certainement plus qu'une suggestion . Et peut-être qu'au cours des prochaines années, ils s'écarteront des standards du Web ici et là (que ce soit intentionnellement ou accidentellement) de la manière la plus infime. Mais après tout, quelque chose mis en œuvre par The Biggest Browser n'est-il pas une sorte de standard de facto lui-même ? D'ailleurs, comment pourriez-vous discuter? Favoriser le meilleur navigateur, le plus rapide et le plus puissant, c'est rendre le Web lui-même un service, après tout. Avec Google, nous ferons avancer le Web. Tout le monde va gagner.

C'est-à-dire tant que de petits écarts par rapport aux normes et de minuscules bogues persistants ne grossissent pas avec le temps - grâce aux forces jumelles de l'entropie et de la complaisance. À moins que les décisions que nous avons prises pour le bien du Web (main dans la main avec une agence de publicité notoirement hostile à la vie privée) ne commencent à devenir un peu plus sombres et qu'un nouveau croque-mitaine commence à prendre forme dans nos esprits - à moins que nous ne trouvions que nos vieilles peurs et frustrations ont refait surface (comme un phénix qui s'affiche à quelques centaines de pixels de là où il devrait et scintille d'une manière étrange lorsque vous faites défiler).

Il ne faut pas beaucoup d'imagination pour voir apparaître de nouveaux moteurs de rendu plus excitants au cours des prochaines années. Il faut tout aussi peu d'imagination pour les voir échouer en raison d'un manque de support, car nous privilégions "le navigateur que tout le monde utilise" - d'abord par choix, et plus tard peut-être dans le service réticent de "la ligne de fond".

Encore une fois, cependant, je ne sais pas. Je n'ai jamais vu cela se produire avec un moteur de rendu moi-même. Je viens d'entendre toute l'histoire, et je ne sais que de première main comment ça se termine. Je connais la fin de la douleur des vieilles cicatrices psychiques; d'un tressaillement involontaire à certains bouts de code, et d'une mémoire musculaire qui m'oblige à en éviter d'autres. Je le sais grâce aux blagues dans les conférences qui se sentaient toujours un peu fatiguées, mais résonnaient toujours d'une manière que je ne me permettrais pas d'admettre et parlaient toujours d'un souhait secret que je tenais au plus profond de mon cœur. Un vœu amer et détestable.

Mais bon, écoute. Plus maintenant. Maintenant, je veux dire - je ne le ferais jamais. J'aime vraiment un bon bogue de moteur de rendu, maintenant. Je fais.

"Les transformations CSS 3D avec perspective() sont rendues à l'envers."

— bugs.chromium.org

Je veux dire, c'est en fait une sorte de bug amusant, non ? Comme, amusant en quelque sorte . Vous savez?

C'est marrant.

Ce sera amusant .