Ne İstedik

Yayınlanan: 2022-03-10
Kısa özet ↬ Eski bir klişe, "Dilediğiniz her şeye sahip olabilir misiniz" ifadesinin özellikle sinsi bir lanet oluşturduğunu söyler. Edge'in yakında Chrome'un oluşturma motoruna geçiş yapmasıyla - iyi ya da kötü, acı bir dilek gerçek oluyor.

Kesin olarak söyleyemesem de, sanırım başımız belaya giriyor. Sorun — biliyorum sorun. Buna rağmen rampa; Ben sadece bunu duydum. Bunu sadece on yıldır yapıyorum. Geçen seferki tüm liderliği kaçırdım. Kesin olarak söyleyebileceğim şey - deneyimlerden bildiğim - öfkeyle gerçekleşen bir dileğimin pişmanlık duymadan gerçekleşmesini hiç yaşamadığımdır.

On yıl (söylemekte bir sakınca görmüyorum) oldukça uzun bir süre. Bir web tasarımı stajına doğru ilk adım attığımda, iyi ol 'Internet Explorer zaten bir alay konusuydu.

"İçeriğinizin bir parçasının görünüp kaybolduğunu ve sayfanın bölümlerinin yalnızca yarım çizildiğini fark ederseniz, bunlar bir öğenin bir düzen gerektirdiğinin iyi göstergeleridir. [...] Bir hasLayout düzeltmesi, bir öğenin varsayılan olarak bir düzeni olmadığında, bir öğenin bir düzen kazanmasına neden olan bir CSS özelliği bildirmekten başka bir şey içermez.”

— Internet Explorer'ın Layout Özelliği vardır

IE'den nefret ettim. Artık buna katlanabileceğimi hissediyorum. yapmamaya çalıştım; Gerçekten, içtenlikle yaptım. İnanabiliyorsan, insanlara desteklemenin eğlenceli olduğunu söylerdim.

Diğer tüm tarayıcılarla başa çıkmak daha kolay ve daha kolay hale geldikçe, kendimi en azından ilginç eski IE için bir zorluk olduğuna ikna etmeye çalıştım. Bu bile gurur verici bir şey haline geldi: Karanlık IE sorunlarını onarmakta o kadar başarılıydım ki, günlük gelişimim sırasında onlardan kaçınmayı öğrenmiştim ve büyük “açıklığın” gelmesinden korkacak hiçbir şey (pekala, daha az) bırakmadım. IE'de açın ve neyin kırıldığını görün ”aşaması.

Atlamadan sonra daha fazlası! Aşağıdan okumaya devam edin ↓

Bir bakıma eğlenceli. eğlence Kendime söylediğim yalan buydu.

 /* 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 Mobil kaynağı

nefret ettim. Her bir enkarnasyonunda, konferansta kötü şakalar, IE'den nefret ettim. Herkesin yaptığı kadar ben de ondan nefret ettim.

“Internet Explorer 6, birden fazla yüzer öğe içeren kafa karıştırıcı bir hataya sahip; kayan öğelerin sonuncusundan gelen metin karakterleri bazen son kayan noktanın altında çoğaltılır. ... Bunun doğrudan nedeni, <!-- end left column --> gibi sırayla gelen kayan noktalar arasına sıkıştırılmış sıradan HTML yorumlarından başka bir şey değildir.”

— Explorer 6 Yinelenen Karakterler Hatası

Lanet olası zaman kaybım buydu. Bozuk bir sanal makineye kafa yorarak harcadığım tüm o saatler - yeniden yükle, bekle, anlamsız bir hataya anlamsız bir düzeltme at, yeniden yükle, kilitle, tekrar IE'yi aç, bekle, önbelleğe almanın bir faktör olmadığını iki kez kontrol et, yeniden yükle, bekle, ve tekrar et. Zamanımla çok daha fazlasını yapabilirdim - çok daha fazlasını öğrenebilirdim .

Sadece çalışmamı engellemediğinden ve sadece web'i engellemediğinden emindim, aynı zamanda bir geliştirici olarak beni geride tuttu. Bu ikinci noktada, sanırım tamamen yanılmamışım - biriktirdiğim tüm belirsiz IE 6-7 tarayıcı hatası bilgisi artık işe yaramaz. Bunun için göstermem gereken tek şey, "filtre" kelimesine istemsiz bir çekingenlik, margin padding için anlaşılmaz bir tercih ve derinlere yerleşmiş ama büyük ölçüde temelsiz bir z-index korkusu.​

“…fazladan boşluk, gerçek sınıf adı başka bir sınıf adının alt dizesi (veya üst dizesi)yse yanlış stillerin seçilmesine neden olur.”

— IE5/Mac boşluk ayrıştırma hatası

Uzaklaşmasını diledim. Akıllı ve yaygın bir virüs tarafından kaldırılan, yasalarca yasaklanan Microsoft, sonunda kalitesiz işleme motorlarının kayıplarını azaltmaya karar verdi ve Firefox'un işleme motoru Gecko'ya geçiş yaptı - her neyse - onu ortadan kaldırın . Ama hayır. Web gelişmeye devam etti ve biz geliştiriciler, akıntıya karşı tekneler, durmaksızın geçmişe geri döndük.

Chrome çıktı, Firefox daha iyi olmaya devam etti, yeni özellikler yayılmaya devam etti, duyarlı web tasarımının ortaya çıkışının sunduğu heyecan verici ve sonsuz olanaklar önümüze yayıldı ve ayrıca (hemen bir kenara) yalnızca birkaç gününüz olduğunu unutmayın. eski IE'de az ya da çok çalışmasını sağlamak için, bu yüzden çok fazla taşınmayın.​

"IE8 kullanıyorsanız VE yukarıda açıklanan CSS sıralı liste numaralandırma yaklaşımını kullanıyorsanız VE counter-reset ve counter-increment CSS özelliklerini kullanan sınıflara sahip HTML, sayfa yüklendiğinde GİZLİ, SONRA bu gizlendiğinde HTML görüntüleniyor, TÜM otomatik sayılar SIFIR olacak, AMA SADECE CSS :hover PSEUDO-CLASS BU SAYFADA KULLANILIYORSA!”

— IE8 "vurgulu" Hatası: Şimdiye Kadarki En Harika IE Hatası mı?

Bugünlerde bu tür bir hayal kırıklığı yaşamayı hayal etmek zor, en azından biz nispeten eski zamanlayıcılar için. Bugünlerde tarayıcılar arası bir şeyleri ayarlamakla ilgili inanılmaz miktarda iş olmadığını söylememe gerek yok - olduğunu çok iyi biliyorum. Ancak, CSS Grid'in tek bir tarayıcıdan nasıl çalıştığına dair küçük bir fark duyduğunuzda, ara sıra, " benim zamanımda , sahip olduğumuz tek şey yüzerdi ve size IE'nin çift kenar boşluklu hatasından bahsetmeme izin verin " sancısını hissetmemek zor. başka bir.

Ben hatalıydım; Bu noktada net olmak istiyorum. Hayal kırıklığına uğramak yanlış değil. Şu anda web geliştirmenin herhangi bir yönü ile ilgili hayal kırıklıklarından dolayı kimsenin suçlanmaması gerektiğini düşündüğüm gibi, bu eski tarayıcı hatalarından dolayı hüsrana uğradığı için kimsenin suçlanmaması gerektiğini düşünüyorum. Hayır, öfkenin beni şu sonuca götürdüğü konusunda yanılmışım: Üç Dişli Mızrak'ın yanıp kül olduğunu ve bir zamanlar tuzlanmış olduğu toprakları görme arzusu.

Bu tuzlu dünyadan yalnızca dramatik olarak ironik bir şeyin büyüdüğünden şüpheleniyorum: yeni nesil web geliştiricileri için yeniden doğan aynı hayal kırıklıkları. Kariyerime başladığımda, tarayıcı savaşlarından birkaç yıl sonra, bu tohumlar çoktan kök salmıştı. Çünkü, benimkinden bir süre önce, biz web geliştiricileri Netscape'i aynı şekilde lanetledik. Daha zayıf, daha sorunlu, tartışmasız daha kötü tarayıcı. Ancak Internet Explorer — geliştiriciler bu tarayıcıyı çok sevdi . Ve diğer tarayıcıların - kötü tarayıcıların - ortadan kalkmasını dilediler: akıllı ve yaygın bir virüs tarafından kaldırıldı, yasalarca yasaklandı, Netscape sonunda kalitesiz işleme motorlarının kayıplarını kesmeye ve IE'nin işleme motoru olan Trident'e geçmeye karar verdi - her neyse - sadece gitmesini sağla . Bu esrarengiz Internet Explorer hataları tesadüf veya ihmal sonucu oluşmadı. Internet Explorer kazandığı için ortaya çıktılar ve biz onu kazandığı için sevdik.

Gördün mü, hayal kırıklığımız ve öfkemiz, genellikle yaptıkları gibi bize yalan söyledi. Bize diğer, daha kötü tarayıcıları desteklemenin sadece işimizi ve web'i engellemediğini, geliştiriciler olarak bizi geride tuttuğunu söylediler. Lanet olası zamanımızın kaybıydı. Bu yüzden kendimize bunun sadece bizim iyiliğimiz için değil , tüm ağın iyiliği için olduğunu söyledik.

IE'yi biraz daha ağırlaştırdık. Kararlarımızda biraz daha söz hakkı verdik. Microsoft elinde bu kadar çok fiş olduğu için kartlarını buna göre oynadı - onları kim suçlayabilir ki? Herkes önce onlar için web siteleri kurdu, sonra diğerleri. Onların sözü yasa değildi, ama kesinlikle öneriden fazlasıydı. Elbette, burada ve orada web standartlarından saptılar (sadece biraz), ama sonuçta The Biggest Browser tarafından uygulanan bir şey zaten bir tür fiili standart değil miydi? Ayrıca, daha iyi, daha hızlı ve daha kolay tarayıcıyı desteklemek, web'in kendisini bir hizmet haline getirmekti! Microsoft ile birlikte web'i ileriye götürüyorduk! Herkes kazanır.

Bugün Microsoft'un Edge tarayıcısına güç veren işleme motoru - EdgeHTML - budaklı eski Trident çatalıdır. Elbette, soyulmuş ve büyük ölçüde geliştirilmiş bir Trident çatalı, ama diyelim ki, evrensel olarak kendi değerine göre değerlendirilmiyor. EdgeHTML ekibi her zaman birkaç dezavantajla çalışıyor: Birincisi teknikti, çünkü Safari, Firefox ve Chrome'un beğenisine yetişmek çok fazla zaman ve çaba gerektirdi. İkincisi duygusaldı. Biz - sen ve ben - yıllarca Internet Explorer'dan bıkmış, neşeli, mavi bir küçük "e" harfine soğuk bir küçümsemeyle bakıyorduk.

Birkaç hafta önce Edge ekibi, Chrome'a ​​güç sağlayan oluşturma motoru olan Blink lehine EdgeHTML'yi yakında terk edeceklerini duyurdu. Bu değişiklikle, Trident'in kalan son birkaç közü sonsuza kadar söndürülecek. Pek çok kişiyle paylaştığım dilek sonunda gerçekleşecek. İronik olarak zamanlanmış - ortaya çıktığı gibi - EdgeHTML oldukça sağlam bir işleme motoru haline geliyordu.

Blink, Google tarafından yönetilen ve yönetilen açık kaynaklı bir projedir. Hem Chrome'a ​​hem de Opera'ya güç veriyor, ikincisi de birkaç yıl önce evde yetiştirilen işleme motorlarını benzer şekilde terk etti.

Ezici bir farkla, Blink tüm dünyada web'in deneyimlenme şeklidir (ve giderek daha fazla olacaktır). Blink hızlıdır, kararlıdır, modern özelliklerle doludur ve hala gelişmekte olan EdgeHTML'ye yönelik geliştirmeyle karşılaştırıldığında ağrısız .

Bizi bu eski IE hatalarından kurtarmak için çok geç olmuş olabilir, ancak desteklenecek daha az işleme motoru olduğu için işimiz artık daha kolay olacak. Sen ve ben biraz daha kolektif "ama bu tarayıcılar arası çalışıyor mu" yükümüzü kaybedeceğiz. Projelerimiz daha sorunsuz ilerleyecek ve web, bir zamanlar kendisini engelleyen şeylerden biraz daha fazlasını kaybedecek.

Web'in bu kadar büyük bir kısmına güç sağlayan motorun görevlileri olarak, Google'ın sözü yasa değil, kesinlikle öneriden daha fazlası olacaktır. Ve belki de önümüzdeki birkaç yıl boyunca, web standartlarından şurada burada (kasıtlı veya kazara) en ufak yoldan sapacaklar. Ama sonuçta, The Biggest Browser tarafından uygulanan bir şey bir tür fiili standart değil mi? Ayrıca, nasıl tartışabilirsin? Daha iyi, daha hızlı ve daha güçlü tarayıcıyı tercih etmek, sonuçta web'in kendisini bir hizmet haline getirmektir. Google ile birlikte web'i ileriye taşıyacağız. Herkes kazanacak.

Yani, küçük standart sapmaları ve küçücük, dırdırcı böcekler zamanla büyümediği sürece - entropi ve gönül rahatlığının ikiz güçleri sayesinde. Web'in iyiliği için verdiğimiz kararlar (gizliliği kötü olduğu bilinen bir reklam şirketiyle el ele) biraz daha karanlık hissetmeye başlamadıkça ve zihnimizde yeni bir öcü şekillenmeye başlamadıkça - bulmadıkça - eski korkularımızın ve hayal kırıklıklarımızın yeniden arttığını (örneğin, olması gereken yerden birkaç yüz piksel uzaklaştıran ve kaydırdığınızda garip bir şekilde titreyen bir anka kuşu gibi).

Önümüzdeki birkaç yıl içinde daha yeni, daha heyecan verici işleme motorlarının ortaya çıkacağını görmek çok fazla hayal gücü gerektirmez. "Herkesin kullandığı tarayıcıyı" tercih ettiğimiz için, destek eksikliğinden dolayı başarısız olduklarını görmek için az hayal gücü gerekir - ilk önce seçime göre ve daha sonra belki de gönülsüzce "sonuç" hizmetinde.

Yine de bilmiyorum. Bunun bir işleme motorunda olduğunu hiç görmedim. Tüm hikayeyi yeni duydum ve nasıl bittiğini sadece ilk elden biliyorum. Eski psişik yaraların acısının sonunu biliyorum; bazı kod parçalarında istemsiz bir çekingenlikten ve beni diğerlerinden kaçınmaya zorlayan kas hafızasından. Bunu her zaman biraz yorgun hissettiren, ancak yine de kendime itiraf edemediğim bir şekilde yankılanan konferans konuşmalarındaki şakalardan biliyorum ve hala kalbimin derinliklerinde tuttuğum gizli bir dileğimle konuşuyorum. Acı, nefret dolu bir dilek.

Ama dinle. Artık değil. Şimdi, demek istediğim - asla yapmam. Şimdi gerçekten iyi bir işleme motoru hatasını seviyorum. Yaparım.

" perspective() ile CSS 3D dönüşümleri içten dışa işlenir."

- bugs.chromium.org

Demek istediğim, bu aslında eğlenceli bir böcek, değil mi? Bir bakıma eğlenmek gibi. Biliyor musun?

Eğlenceli.

Eğlenceli olacak .