Apa yang Kami Inginkan

Diterbitkan: 2022-03-10
Ringkasan cepat Sebuah klise lama mengatakan bahwa "semoga Anda mendapatkan semua yang Anda inginkan" membuat kutukan yang sangat berbahaya. Dengan Edge yang segera beralih ke mesin rendering Chrome — baik, baik atau buruk, keinginan pahit akan menjadi kenyataan.

Saya pikir kita sedang menuju masalah, meskipun saya tidak bisa mengatakan dengan pasti. Masalah — masalah yang saya tahu . Di-jalan untuk itu, meskipun; Saya hanya pernah mendengar tentang itu. Saya baru melakukan ini selama sepuluh tahun. Saya melewatkan semua lead-up terakhir kali. Apa yang bisa saya katakan dengan pasti — apa yang saya ketahui dari pengalaman — adalah bahwa saya tidak pernah memiliki keinginan yang dibuat dalam kemarahan menjadi kenyataan tanpa menyesalinya.

Sepuluh tahun (saya tidak keberatan mengatakannya) adalah waktu yang cukup lama. Kembali ketika saya pertama kali mencoba magang desain web, Internet Explorer yang bagus sudah menjadi bahan tertawaan.

“Jika Anda melihat bahwa bagian dari konten Anda muncul dan menghilang, dan bagian halaman hanya setengah tergambar, ini adalah indikasi yang baik bahwa suatu elemen memerlukan tata letak. [...] Perbaikan hasLayout melibatkan tidak lebih dari mendeklarasikan properti CSS yang menyebabkan elemen mendapatkan tata letak, ketika biasanya tidak memiliki tata letak secara default.”

— Internet Explorer memiliki Properti Tata Letak

Aku benci IE. Aku merasa seperti aku bisa mengatasinya sekarang. Saya mencoba untuk tidak; Saya benar-benar, dengan tulus melakukannya. Saya akan memberi tahu orang-orang bahwa mendukung itu menyenangkan , jika Anda bisa mempercayainya.

Karena semua browser lain menjadi lebih mudah dan lebih mudah untuk ditangani, saya berusaha meyakinkan diri sendiri bahwa setidaknya masih ada tantangan untuk IE lama yang unik. Itu bahkan menjadi sesuatu yang membanggakan: Saya menjadi sangat baik dalam memperbaiki masalah IE yang tidak jelas sehingga saya telah belajar untuk menghindarinya selama pengembangan sehari-hari saya, tidak meninggalkan apa pun (well, less) untuk ditakuti. itu di IE dan lihat fase apa yang rusak.

Lebih banyak setelah melompat! Lanjutkan membaca di bawah ini

Ini menyenangkan, di satu sisi. Menyenangkan . Itu adalah kebohongan yang saya katakan pada diri saya sendiri.

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

— sumber Seluler jQuery

Aku membencinya. Saya sangat membenci IE, dalam setiap inkarnasinya. Aku membencinya sama seperti yang dilakukan orang lain.

“Internet Explorer 6 memiliki bug membingungkan yang melibatkan beberapa elemen melayang; karakter teks dari elemen terapung terakhir terkadang diduplikasi di bawah pelampung terakhir. ... Penyebab langsungnya tidak lebih dari komentar HTML biasa, seperti, <!-- end left column --> , diapit di antara float yang berurutan.”

— Explorer 6 Duplikat Karakter Bug

Buang-buang waktu sialan saya adalah apa itu. Semua jam yang saya habiskan dengan membungkuk di atas mesin virtual yang tersendat—muat ulang, tunggu, lakukan perbaikan yang tidak masuk akal pada bug yang tidak masuk akal, muat ulang, crash , buka IE lagi, tunggu, periksa kembali apakah caching bukan faktornya, muat ulang, tunggu, dan ulangi. Saya bisa melakukan lebih banyak dengan waktu saya — saya bisa belajar lebih banyak.

Saya yakin bahwa itu tidak hanya menahan pekerjaan saya, dan tidak hanya menahan web, tetapi juga menahan saya , sebagai pengembang. Pada poin kedua itu, saya kira saya tidak sepenuhnya salah — semua pengetahuan bug browser IE 6-7 yang tidak jelas yang saya kumpulkan semuanya tidak berguna sekarang. Yang harus saya tunjukkan untuk itu adalah gentar yang tidak disengaja pada kata "filter," preferensi yang tidak dapat dipahami untuk padding over margin , dan ketakutan yang mendalam tetapi sebagian besar tidak berdasar dari z-index .saya

“… spasi ekstra menyebabkan gaya yang salah diambil jika nama kelas sebenarnya adalah substring (atau superstring) dari beberapa nama kelas lain.”

— Bug penguraian spasi putih IE5/Mac

Aku berharap itu akan pergi. Dihapus oleh virus pintar dan tersebar luas, dilarang oleh undang-undang, Microsoft akhirnya memutuskan untuk memotong kerugian mesin rendering jelek mereka dan beralih ke mesin rendering Firefox, Gecko — apa pun — hilangkan saja . Tapi tidak. Web terus berkembang dan kami para pengembang terus melaju, melawan arus, terbawa kembali tanpa henti ke masa lalu.

Chrome datang, Firefox terus menjadi lebih baik, fitur-fitur baru terus diluncurkan, kemungkinan menarik dan tak terbatas yang disajikan oleh munculnya desain web responsif yang tersebar di hadapan kami, dan juga (samping cepat) ingat bahwa Anda hanya memiliki beberapa hari untuk membuatnya kurang lebih berfungsi di IE lama, jadi jangan terlalu terbawa suasana.saya

“JIKA Anda menggunakan IE8, DAN Anda menggunakan pendekatan penomoran daftar urutan CSS yang dijelaskan di atas, DAN HTML yang memiliki kelas yang menggunakan atribut CSS counter-reset dan counter-increment TERSEMBUNYI saat halaman dimuat, MAKA kapan pun itu disembunyikan HTML ditampilkan, SEMUA nomor otomatis akan menjadi NOL, TAPI HANYA JIKA CSS :hover PSEUDO-CLASS DIGUNAKAN PADA HALAMAN ITU!”

— Bug “hover” IE8: Bug IE Paling Mengagumkan?

Sulit membayangkan mengalami frustrasi semacam itu saat ini, setidaknya bagi kita yang relatif tua. Bukan untuk mengatakan bahwa tidak ada jumlah pekerjaan yang luar biasa yang terlibat dalam penyetelan lintas-browser akhir-akhir ini juga — saya tahu betul bahwa ada. Tapi sulit untuk tidak merasakan kepedihan sesekali, "di zaman saya , yang kami miliki hanyalah float, dan izinkan saya memberi tahu Anda tentang bug margin ganda IE ," ketika Anda mendengar tentang sedikit perbedaan dalam cara kerja CSS Grid dari satu browser kepada yang lain.

Saya salah; Saya ingin menjadi jelas tentang hal itu. Tidak salah jika merasa frustrasi. Saya tidak berpikir siapa pun harus disalahkan karena frustrasi dengan bug browser lama itu, sama seperti saya tidak berpikir siapa pun harus disalahkan atas frustrasi mereka dengan aspek pengembangan web apa pun sekarang . Tidak, saya salah untuk kesimpulan bahwa kemarahan membawa saya ke: keinginan untuk melihat Trident terbakar ke tanah dan bumi di mana ia pernah berdiri asin.

Saya menduga bahwa hanya satu hal yang sangat ironis yang tumbuh dari bumi yang asin itu: frustrasi yang sama, lahir baru, untuk generasi baru pengembang web. Ketika saya memulai karir saya, beberapa tahun setelah perang browser, benih-benih itu telah berakar. Karena, untuk sementara waktu — waktu sebelum saya sendiri — kami pengembang web mengutuk Netscape dengan cara yang sama. Browser yang lebih lemah, buggier, dan lebih buruk . Tetapi Internet Explorer — pengembang menyukai browser itu. Dan mereka berharap browser lain itu — browser yang buruk — akan hilang begitu saja : dihapus oleh virus yang pintar dan tersebar luas, dilarang oleh hukum, Netscape akhirnya memutuskan untuk memotong kerugian mesin rendering jelek mereka dan beralih ke mesin rendering IE, Trident — apa pun — hanya membuatnya pergi . Bug Internet Explorer yang tidak dapat dipahami itu tidak terjadi secara kebetulan atau karena kelalaian. Mereka muncul karena Internet Explorer telah menang , dan kami menyukainya karena menang.

Lihat, frustrasi dan kemarahan kami berbohong kepada kami, seperti yang biasanya mereka lakukan. Mereka memberi tahu kami bahwa mendukung peramban lain yang lebih buruk tidak hanya menghambat pekerjaan kami, dan tidak hanya menahan web, tetapi juga menahan kami , sebagai pengembang. Buang-buang waktu kita adalah apa itu. Jadi, kami memberi tahu diri kami sendiri bahwa itu bukan hanya untuk kebaikan kami sendiri, tetapi juga untuk kebaikan seluruh web .

Kami menimbang IE hanya sedikit lebih berat. Kami memberikannya sedikit lebih banyak suara dalam keputusan kami. Jadi, memegang begitu banyak chip, Microsoft memainkan kartu mereka — siapa yang bisa menyalahkan mereka? Semua orang membuat situs web untuk mereka terlebih dahulu, dan yang lainnya kedua. Kata-kata mereka bukanlah hukum , tapi jelas lebih dari sekadar saran . Tentu, mereka menyimpang dari standar web di sana-sini (hanya sedikit), tetapi bagaimanapun juga, bukankah sesuatu yang diterapkan oleh Browser Terbesar semacam standar de facto ? Selain itu, mendukung browser yang lebih baik, lebih cepat, dan lebih mudah melakukan layanan web itu sendiri! Bersama dengan Microsoft, kami mendorong web ke depan! Semua orang menang.

Mesin rendering yang mendukung browser Edge Microsoft hari ini — EdgeHTML — adalah garpu dari Trident tua yang degil. Ini adalah garpu Trident yang dilucuti dan jauh lebih baik, tentu saja, tetapi, katakanlah, tidak dinilai secara universal berdasarkan kemampuannya sendiri. Tim EdgeHTML selalu bekerja dengan beberapa kelemahan: yang pertama adalah teknis, karena butuh banyak waktu dan upaya untuk mengejar ketinggalan dengan orang-orang seperti Safari, Firefox, dan Chrome. Yang kedua adalah emosional. Itu adalah kami — Anda dan saya — letih karena bertahun-tahun Internet Explorer, menatap huruf kecil "e" biru ceria dengan jijik dingin.

Beberapa minggu yang lalu, tim Edge mengumumkan bahwa mereka akan segera meninggalkan EdgeHTML demi Blink, mesin rendering yang mendukung Chrome. Dengan perubahan ini, sisa bara Trident yang tersisa akan padam selamanya. Harapan yang telah saya bagikan dengan begitu banyak orang akhirnya akan dikabulkan. Ironisnya waktunya — ternyata — EdgeHTML menjadi mesin rendering yang cukup solid.

Blink adalah proyek sumber terbuka yang dipimpin dan diatur oleh Google. Ini mendukung Chrome dan Opera, yang terakhir juga meninggalkan mesin rendering buatan mereka beberapa tahun yang lalu.

Dengan margin yang luar biasa, Blink adalah (dan akan semakin menjadi) cara web dialami di seluruh dunia. Blink cepat, stabil, dikemas dengan fitur modern, dan — dibandingkan dengan pengembangan untuk EdgeHTML yang masih berkembang — tanpa rasa sakit .

Mungkin sudah terlambat untuk menyelamatkan kita dari bug IE kuno itu, tetapi pekerjaan kita akan lebih mudah sekarang karena hanya ada satu mesin rendering yang harus didukung. Anda dan saya akan kehilangan sedikit lebih banyak beban kolektif "tetapi apakah itu berhasil lintas-browser". Proyek kami akan berjalan lebih lancar, dan web akan kehilangan sedikit lebih banyak dari apa yang dulu menahannya.

Sebagai pelayan mesin yang menggerakkan begitu banyak web, yah, kata-kata Google tidak akan menjadi hukum , tetapi tentu saja lebih dari sekadar saran . Dan mungkin selama beberapa tahun ke depan, mereka akan menyimpang dari standar web di sana-sini (baik sengaja atau tidak sengaja) dengan cara yang paling kecil. Tapi bagaimanapun juga, bukankah sesuatu yang diimplementasikan oleh The Biggest Browser semacam standar de facto itu sendiri? Selain itu, bagaimana Anda bisa berdebat? Menyukai browser yang lebih baik, lebih cepat, dan lebih kuat berarti menjadikan web itu sendiri sebagai layanan. Bersama dengan Google, kami akan mendorong web ke depan. Semua orang akan menang.

Artinya, selama deviasi standar kecil dan bug kecil yang mengganggu tidak tumbuh lebih besar dari waktu ke waktu — berkat kekuatan kembar entropi dan kepuasan diri. Kecuali keputusan yang kami buat untuk kebaikan web (bergandengan tangan dengan perusahaan periklanan yang terkenal memusuhi privasi) mulai terasa sedikit lebih gelap, dan hantu baru mulai terbentuk dalam pikiran kami — kecuali jika kami menemukan bahwa ketakutan dan frustrasi lama kita telah bangkit kembali (seperti burung phoenix yang membuat beberapa ratus piksel menjauh dari tempat seharusnya dan berkedip dengan cara yang aneh saat Anda menggulir).

Tidak perlu banyak imajinasi untuk melihat mesin rendering yang lebih baru dan lebih menarik muncul selama beberapa tahun ke depan. Hanya perlu sedikit imajinasi untuk melihat mereka gagal karena kurangnya dukungan, karena kami lebih menyukai "peramban yang digunakan semua orang" — pertama karena pilihan, dan kemudian mungkin dalam layanan yang enggan "pada intinya."

Lagi pula, saya tidak tahu. Saya sendiri belum pernah melihat ini terjadi dengan mesin rendering. Saya baru saja mendengar keseluruhan cerita, dan saya hanya tahu secara langsung bagaimana akhirnya. Saya tahu akhir dari rasa sakit bekas luka psikis lama; dari sentakan yang tidak disengaja pada beberapa bit kode, dan memori otot yang memaksa saya untuk menghindari yang lain. Saya mengetahuinya dari lelucon dalam pembicaraan konferensi yang selalu terasa sedikit lelah, tetapi masih bergaung sama dengan cara yang tidak akan saya akui dan masih berbicara dengan harapan rahasia yang saya simpan jauh di dalam hati saya. Keinginan yang pahit dan penuh kebencian.

Tapi hei, dengarkan. Tidak lagi. Sekarang, maksud saya — saya tidak akan pernah. Saya sangat menyukai bug mesin rendering yang bagus, sekarang. Saya bersedia.

“Transformasi CSS 3D dengan perspective() dirender dari dalam ke luar.”

— bugs.chromium.org

Maksudku, itu sebenarnya semacam bug yang menyenangkan, bukan? Seperti, menyenangkan dengan cara tertentu . Kau tahu?

Itu menyenangkan.

Ini akan menyenangkan .