Ce ne-am dorit

Publicat: 2022-03-10
Rezumat rapid ↬ Un clișeu vechi spune că „fie să obții tot ce îți dorești” este un blestem deosebit de insidios. Cu Edge trecând în curând la motorul de randare al Chrome - ei bine, de bine sau de rău, o dorință amară se împlinește.

Cred că ne îndreptăm spre necazuri, deși nu pot spune cu siguranță. Probleme - probleme pe care le cunosc . Totuși, rampa de acces la el; Am auzit doar despre asta. Fac asta doar de zece ani. Ultima dată am ratat toată perioada preliminară. Ceea ce pot spune cu siguranță – ceea ce știu din experiență – este că nu mi-a fost niciodată îndeplinită o dorință făcută din furie fără să regret.

Zece ani (nu mă deranjează să spun) sunt destul de lungi. Când mi-am întins pentru prima dată drumul într-un stagiu de web design, vechiul Internet Explorer era deja un râs.

„Dacă observați că o parte din conținutul dvs. apare și dispare, iar secțiunile paginii sunt doar pe jumătate desenate, acestea sunt indicii bune că un element necesită un aspect. [...] O remediere hasLayout nu implică nimic mai mult decât declararea unei proprietăți CSS care determină un element să obțină un aspect, atunci când de obicei nu ar avea un aspect implicit.”

— Internet Explorer are proprietatea Layout

Am urât IE. Simt că pot face față asta acum. Am încercat să nu o fac; Am făcut-o cu adevărat, sincer. Le-aș spune oamenilor că a fost distractiv să susții, dacă poți să crezi.

Pe măsură ce toate celelalte browsere au devenit din ce în ce mai ușor de gestionat, am încercat să mă conving că există cel puțin încă o provocare pentru vechiul IE ciudat. Asta a devenit chiar un punct de mândrie: mă pricepeam atât de bine la remedierea problemelor obscure ale IE, încât am învățat să le evit pe parcursul dezvoltării mele de zi cu zi, fără să lăsăm nimic (ei, mai puțin) de teamă să vină marele „deschis”. este în IE și vezi ce s-a rupt”.

Mai multe după săritură! Continuați să citiți mai jos ↓

Este distractiv, într-un fel. Distracție . Asta a fost minciuna pe care mi-am spus-o.

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

— Sursa jQuery Mobile

L-am urât. Am urat IE din plin, glume proaste în cadrul unei conferințe, în fiecare dintre încarnările sale. L-am urât la fel de mult la fel de mult pe ceilalți.

„Internet Explorer 6 are o eroare enigmatică care implică mai multe elemente plutitoare; caracterele text din ultimul dintre elementele flotante sunt uneori duplicate sub ultimul element flotant. ... Cauza directă nu este altceva decât comentarii HTML obișnuite, cum ar fi, <!-- end left column --> , cuprinse între elementele mobile care vin în succesiune.”

— Bug de caractere duplicate din Explorer 6

O pierdere a blestemata mea de timp este ceea ce a fost. Toate acele ore pe care le-am petrecut ghemuit pe o mașină virtuală neplăcută — reîncărcați, așteptați, aruncați o remediere prostii la o eroare aiurea, reîncărcați, blocați , deschideți IE din nou, așteptați, verificați din nou că stocarea în cache nu a fost un factor, reîncărcați, așteptați, si repeta. Aș fi putut face mult mai multe cu timpul meu - aș fi putut învăța mult mai multe.

Eram sigur că nu doar că mi-a oprit munca și nu doar că a reținut web-ul, ci m -a reținut, ca dezvoltator. În al doilea punct, cred că nu m-am înșelat complet - toate cunoștințele obscure despre erorile de browser IE 6-7 pe care le-am acumulat sunt inutile acum. Tot ce trebuie să arăt pentru asta este o tresărire involuntară la cuvântul „filtru”, o preferință inscrutabilă pentru padding față de margin și o frică adânc înrădăcinată, dar în mare parte nefondată, de z-index .​

„...spații albe suplimentare fac ca stilurile greșite să fie preluate dacă numele real al clasei este un subșir (sau superșir) al unui alt nume de clasă.”

— Eroare de analizare a spațiilor albe IE5/Mac

Mi-aș fi dorit să dispară. Dezinstalat de un virus inteligent și larg răspândit, interzis de lege, Microsoft a decis în sfârșit să reducă pierderile motorului lor de randare defectuos și să treacă la motorul de randare al Firefox, Gecko — indiferent — doar îl face să dispară . Dar nu. Web-ul a continuat să evolueze, iar noi, dezvoltatorii, am continuat, bărci împotriva curentului, reveniți fără încetare în trecut.

Chrome a apărut, Firefox a continuat să se îmbunătățească, noi funcții au continuat să apară, posibilitățile incitante și nesfârșite prezentate de apariția designului web responsive s-au răspândit înaintea noastră și, de asemenea, (iar la o parte), amintiți-vă că veți avea doar câteva zile pentru a face totul să funcționeze mai mult sau mai puțin în vechiul IE, așa că nu te lăsa prea luat.​

„DACĂ utilizați IE8, ȘI utilizați abordarea de numerotare a listelor ordonate CSS descrisă mai sus, ȘI HTML-ul care are clasele care utilizează atributele CSS de counter-reset și counter-increment este ASCUNS atunci când pagina se încarcă, APOI ori de câte ori este ascuns. Este afișat HTML, TOATE numerele automate vor fi ZERO, DAR NUMAI DACĂ CSS :hover PSEUDO-CLASS ESTE FOLOSIT PE ACEEA PAGINA!”

— Bug-ul „hover” IE8: Cel mai grozav bug IE vreodată?

Este greu de imaginat că trăim în zilele noastre un asemenea tip de frustrare, cel puțin pentru noi, cei relativ în vârstă. Ca să nu spun că nu este o cantitate incredibilă de muncă implicată în reglarea lucrurilor între browsere în zilele noastre - știu prea bine că există. Dar este greu să nu simți ocazional zgomot de „pe vremurile mele , tot ce aveam erau flotări și permiteți-mi să vă povestesc despre eroarea cu marjă dublă a IE ”, când auziți despre o mică diferență în modul în care funcționează CSS Grid dintr-un browser. altcuiva.

M-am înșelat; Vreau să fiu clar în acest punct. Nu este greșit pentru că ai fost frustrat. Nu cred că cineva ar trebui să fie învinovățit pentru frustrarea cu acele vechi erori ale browserului, la fel cum nu cred că cineva ar trebui să fie învinovățit pentru frustrarea cu orice aspect al dezvoltării web acum . Nu, am greșit concluzia la care m-a adus furia: dorința de a-l vedea pe Trident ars până la pământ și pământul unde stătea cândva sărat.

Bănuiesc că din acel pământ sărat crește un singur lucru dramatic-ironic: aceleași frustrări, născute din nou, pentru o nouă generație de dezvoltatori web. Când mi-am început cariera, la câțiva ani după războaiele browserelor, acele semințe prinseseră deja rădăcini. Pentru că, pentru o vreme – cu un timp înaintea mea – noi, dezvoltatorii web, am blestemat Netscape în același mod. Browserul mai slab, mai defectuos și, fără îndoială, mai rău . Dar Internet Explorer - dezvoltatorii au iubit acel browser. Și și-au dorit ca celelalte browsere – browserele proaste – să dispară : dezinstalate de un virus inteligent și răspândit, interzis de lege, Netscape hotărând în cele din urmă să reducă pierderile motorului lor de randare defectuos și să treacă la motorul de randare al IE, Trident – ​​orice – doar face să dispară . Acele bug-uri imperceptibile ale Internet Explorer nu s-au întâmplat prin coincidență sau neglijență. Au apărut pentru că Internet Explorer câștigase și ne-a plăcut pentru că câștigase.

Vezi, frustrarea și furia noastră ne-au mințit, așa cum o fac de obicei. Ei ne-au spus că sprijinirea celorlalte browsere mai proaste nu ne-a împiedicat doar munca și nu a reținut doar web-ul, ci ne-a ținut pe noi , ca dezvoltatori. O pierdere a nenorocitului nostru de timp este ceea ce a fost. Așadar, ne-am spus că nu este doar pentru binele nostru , ci pentru binele întregului web .

Am cântărit IE puțin mai mult. I-am dat puțin mai mult cuvânt de spus în deciziile noastre. Și astfel, deținând atât de multe jetoane, Microsoft și-a jucat cărțile în consecință – cine i-ar putea învinovăți? Toată lumea a construit site-uri web pentru ei mai întâi, iar ceilalți în al doilea rând. Cuvântul lor nu era lege , dar cu siguranță era mai mult decât sugestie . Sigur, s-au abătut de la standardele web ici și colo (doar puțin), dar până la urmă, ceva implementat de The Biggest Browser nu era oricum un fel de standard de facto ? În plus, susținerea browserului mai bun, mai rapid și mai ușor era să facă web-ului în sine un serviciu! Împreună cu Microsoft, am împins internetul înainte! Toată lumea câștigă.

Motorul de randare care alimentează browserul Microsoft Edge de astăzi – EdgeHTML – este o furcăre a vechiului Trident nodur. Este o furcă dezintegrată și mult îmbunătățită a Tridentului, cu siguranță, dar nu este, să spunem, judecată universal pe meritul său. Echipa EdgeHTML a lucrat întotdeauna cu câteva dezavantaje: primul a fost tehnic, în sensul că a fost nevoie de o cantitate enormă de timp și efort pentru a ajunge din urmă cu Safari, Firefox și Chrome. Al doilea a fost emoționant. Eram noi – tu și eu – obosiți de ani de Internet Explorer, privind în jos un „e” minuscul albastru vesel cu dispreț rece.

Acum câteva săptămâni, echipa Edge a anunțat că va abandona în curând EdgeHTML în favoarea Blink, motorul de randare care alimentează Chrome. Odată cu această schimbare, ultimul jar rămas din Trident va fi stins pentru totdeauna. Dorința pe care am împărtășit-o atât de mulți va fi în sfârșit îndeplinită. Cronometrat în mod ironic – după cum se dovedește – EdgeHTML devenea un motor de randare destul de solid.

Blink este un proiect open-source condus și guvernat de Google. Acesta alimentează atât Chrome, cât și Opera, acesta din urmă și-a abandonat, în mod similar, motorul de randare de acasă cu câțiva ani în urmă.

Într-o marjă copleșitoare, Blink este (și va fi din ce în ce mai mult) modul în care este experimentat web-ul în întreaga lume. Blink este rapid, stabil, plin de funcții moderne și, în comparație cu dezvoltarea pentru EdgeHTML, în continuă evoluție, fără durere .

Poate că s-a întâmplat prea târziu pentru a ne salva de acele bug-uri vechi ale IE, dar munca noastră va fi mai ușoară acum că avem un motor de randare mai puțin de suportat. Tu și cu mine vom pierde puțin mai mult din povara noastră colectivă „dar funcționează între browsere”. Proiectele noastre vor merge mai bine, iar web-ul va pierde doar puțin mai mult din ceea ce îl reținea cândva.

În calitate de administratori ai motorului care alimentează atât de mult web, ei bine, cuvântul Google nu va fi lege , dar cu siguranță mai mult decât sugestie . Și poate că în următorii câțiva ani, se vor abate de la standardele web ici și colo (fie intenționat, fie accidental) în cele mai mici moduri. Dar până la urmă, ceva implementat de The Biggest Browser nu este un fel de standard de facto în sine? În plus, cum te-ai putea certa? Favorizarea unui browser mai bun, mai rapid și mai puternic înseamnă a face web-ului în sine un serviciu, până la urmă. Împreună cu Google, vom promova web-ul. Toți vor câștiga.

Adică, atâta timp cât micile abateri ale standardelor și insectele minuscule și sâcâitoare nu devin mai mari în timp - datorită forțelor duble ale entropiei și complezenței. Cu excepția cazului în care deciziile pe care le-am luat pentru binele web-ului (mână în mână cu o companie de publicitate notoriu ostilă a confidențialității) încep să se simtă puțin mai întunecate și un nou bogeyman începe să prindă contur în mintea noastră - dacă nu descoperim că vechile noastre temeri și frustrări au crescut din nou (ca un phoenix care redă câteva sute de pixeli distanță de unde ar trebui și pâlpâie într-un mod ciudat când derulați).

Nu este nevoie de multă imaginație pentru a vedea apariția unor motoare de randare mai noi și mai interesante în următorii câțiva ani. Este nevoie de la fel de puțină imaginație pentru a-i vedea eșuând din cauza lipsei de suport, deoarece favorizăm „browserul pe care îl folosește toată lumea” – mai întâi prin alegere, iar mai târziu, poate, în serviciul cu poftă a „consumului final”.

Din nou, totuși, nu știu. Nu am văzut niciodată că se întâmplă asta cu un motor de randare. Tocmai am auzit toată povestea și știu doar de prima mână cum se termină. Cunosc finalul din durerea vechilor cicatrici psihice; dintr-o tresărire involuntară la unele fragmente de cod și memorie musculară care mă obligă să evit pe altele. Știu asta din glumele din discuțiile de la conferință care s-au simțit întotdeauna puțin obosit, dar totuși au rezonat la fel într-un fel pe care nu mi-aș permite să-l recunosc și tot vorbesc cu o dorință secretă pe care am ținut-o adânc în inimă. O urare amară, plină de ură.

Dar hei, ascultă. Nu mai. Acum, vreau să spun, nu aș face niciodată. Îmi place foarte mult un bug bun al motorului de randare, acum. Fac.

„Transformările CSS 3D cu perspective() sunt redate pe dos.”

— bugs.chromium.org

Adică, este de fapt un fel de insectă amuzantă, nu? Ca, distracție într-un fel . știi?

Este distractiv.

Va fi distractiv .