Pengalaman menggunakan browser web Servo buatan Rust
(spacebar.news)- Seiring meningkatnya pangsa browser berbasis Chromium secara global, kekhawatiran terhadap keragaman standar web dan masa depan open web makin besar
- Servo yang dikembangkan dengan Rust memiliki dua keunggulan utama, yaitu kemampuan multithread dan keamanan memori, sehingga mendapatkan perhatian sebagai alternatif baru di bidang mesin rendering web
- Karena masih berada pada tahap awal, sebagian besar situs web masih memiliki bug rendering, tetapi pada beberapa halaman demo atau situs sederhana seperti Wikipedia berfungsi normal
- Proyek Servo bermula dipimpin oleh Mozilla, tetapi kini dikelola oleh Linux Foundation Europe dengan struktur pengambilan keputusan berbasis komunitas dan independensi teknis
- Di tengah arus sentralisasi mesin browser, pengembangan berkelanjutan mesin alternatif seperti Gecko dan Servo menunjukkan pentingnya menjaga keragaman ekosistem web
Konsentrasi Mesin Browser dan Risikonya
- Pada era 1990-an hingga awal 2000-an, terdapat mesin browser yang beragam seperti Trident milik Internet Explorer, Presto milik Opera, Gecko milik Netscape, dan KHTML milik Konqueror
- Seiring waktu, KHTML menjadi WebKit, sementara Presto dan Trident (beserta Tasman) diintegrasikan atau digantikan oleh Blink (mesin Chromium)
- Karena hampir semua browser utama masa kini (Chrome, Edge, Opera, dll.) berbasis Chromium/Blink, terjadi fenomena implementasi yang menjadi semacam standar
- Kerentanan keamanan, keterbatasan skalabilitas, dan lain-lain makin jelas menjadi masalah karena ketika tergantung pada satu mesin, seluruh ekosistem web ikut terdampak
Munculnya Mesin Servo
- Servo adalah mesin rendering web yang dikembangkan dari awal dengan Rust
- Berbekal keunggulan Rust seperti pemrosesan multithread dan keamanan memori, ini merupakan upaya mengurangi secara struktural kelemahan mesin berbasis C/C++, seperti bug memori
- Tujuan utama Servo adalah menjadi mesin rendering web tertanam (embedded) yang juga dapat digunakan sebagai pengganti selain browser mandiri, misalnya Electron atau Android WebView
- Di bawah Linux Foundation Europe, keputusan teknis dijalankan oleh komite teknis, bukan perusahaan besar
- Setelah sekitar 10 tahun, Servo hadir sebagai mesin browser baru yang benar-benar baru, dan sedang memasukkan pengalaman dari mesin arus utama yang sudah ada untuk meningkatkan kematangannya
Pengalaman Penggunaan dan Kondisi Servo saat ini
- Servo bisa dicoba melalui nightly build yang dipublikasikan di situs resmi (untuk Windows, macOS, Android, Linux)
- Fitur browser dasar seperti bookmark, ekstensi, dan sinkronisasi data belum didukung
- Pada mayoritas situs web muncul bug rendering, dan pada pencarian Google atau beberapa situs lain terjadi layout rusak atau crash
- Halaman dengan struktur sederhana seperti Wikipedia dan CNN Lite beroperasi dengan normal
- Pada halaman demo Servo dapat ditunjukkan kinerja grafis, dan pada benchmark seperti Particle Physics tercatat hasil 55-60 FPS pada MacBook Pro terbaru (dengan emulasi x86)
- Pada pengujian Acid3, nilainya 83/100, lebih rendah dari browser arus utama (sekitar 95 poin)
- Mendatang, dukungan untuk standar web utama seperti Shadow DOM dan CSS Grid masuk roadmap dengan fokus pada peningkatan kompatibilitas web
Sejarah dan Momen Perubahan Penting Servo
- Servo dimulai pada 2012 oleh Mozilla, dan pada 2013 Samsung bergabung dalam pengembangannya
- Awalnya ditujukan pada skenario mengganti mesin Gecko setelah stabil, lalu bergeser ke strategi menggantikan bagian-bagian Gecko secara bertahap dengan kode Servo secara realistis
- Melalui pembaruan Firefox 57 (Quantum), mesin CSS (Quantum CSS, Stylo) digantikan dengan kode Servo, dan terjadi peningkatan kinerja serta efisiensi memori yang nyata
- Setelah restrukturisasi besar-besaran Mozilla tahun 2020 (termasuk pengembang Servo), Servo dipindahkan ke bawah naungan Linux Foundation dan pendanaan kembali dipulihkan, lalu sekarang pengembangan berpusat pada komunitas dengan dukungan perusahaan open source seperti Igalia
Kemungkinan Masa Depan Ekosistem Browser
- Setelah Kementerian Kehakiman AS menang di gugatan terkait posisi dominan Google (Chrome, Android), sedang dibahas langkah penjualan Chrome dan larangan perjanjian mesin pencarian dengan browser pihak ketiga
- Mozilla sangat bergantung pada pendapatan dari penempatan mesin pencarian bawaan Firefox (yang penting untuk mempertahankan pengembangan Gecko), sehingga menolak langkah tersebut
- Jika Mozilla kehilangan pendapatan dari Google, kemungkinan Firefox beralih ke WebKit atau Chromium/Blink untuk mengurangi biaya pengembangan
- Dalam hal itu, kemungkinan skenario yang muncul meliputi fork kode Gecko dan operasional komunitas, atau kemungkinan kemunduran bertahap Gecko
- Keberadaan Servo dan mesin alternatif seperti Gecko kembali menonjol sebagai elemen penting untuk menjaga keragaman dan keseimbangan platform web
Penutup dan Implikasi
- Di tengah kecenderungan penyatuan mesin browser arus utama, munculnya alternatif inovatif seperti Servo berperan penting dalam menjaga keragaman dan kesehatan ekosistem web
- Sulit untuk menjadi browser yang siap dipakai secara luas dalam jangka pendek, tetapi eksperimen dan perkembangan teknis terus berjalan
- Timbul ekspektasi besar terhadap arah pengembangan Servo ke depan serta dampak yang akan ditimbulkannya di industri
4 komentar
Masa disuruh mengunduh dan memakai sesuatu yang bahkan nyaris tidak berfungsi? Sebenarnya keangkuhan seperti itu datangnya dari mana?
Saya dengar Rust adalah bahasa yang dibuat untuk mengembangkan Servo.. semoga Servo bisa berhasil dengan baik
Proyek Hurd terus teringat di kepala… mungkin cuma perasaanku saja, ya?
Pendapat Hacker News
Dalam roadmap saat ini, Shadow DOM dan CSS Grid diprioritaskan. Saya sedang mengerjakan dukungan CSS Grid, dan dukungan untuk "named grid lines and areas" akan segera ditambahkan. Saya berharap ini akan membuat lebih banyak layout situs web bekerja dengan benar. Mungkin saya bias karena ini proyek saya, tetapi menurut saya cara Servo mengimplementasikan CSS Grid cukup keren. Implementasi intinya dipisahkan ke pustaka eksternal (Taffy, tautan GitHub), dan pustaka ini digunakan luas di ekosistem UI Rust. Contohnya dipakai di engine web Blitz(tautan), editor teks Zed(tautan), dan game engine Bevy(tautan) untuk berbagai peran seperti Flexbox, Block layout, dan lainnya. Berdasarkan pengalaman Servo mengembangkan pustaka modular seperti Stylo dan html5ever, saya berharap pendekatan memecah engine web menjadi modul independen dan API publik akan menurunkan hambatan masuk bagi pengembang engine web di masa depan dan sangat membantu pengembang engine web baru
Baru pertama kali mendengar tentang Blitz, terlihat seperti proyek yang sangat menarik dan ambisius, rasanya seperti engine web yang benar-benar 'tersembunyi'. Servo sudah dikenal luas sejak Rust pertama kali muncul, tetapi Blitz sama impresifnya
Saya penasaran apakah pengalaman mengimplementasikan sendiri fitur engine browser memengaruhi cara Anda menulis HTML atau CSS. Saya juga ingin tahu apakah Anda masih mencari "css grid cheatsheet" tiga kali seminggu
Saya khawatir pendekatan memecah fitur menjadi modul justru bisa berujung pada fitur berlebihan atau fragmentasi. Untuk melawan Google, strategi yang fokus terasa penting, dan bagian itu yang mengkhawatirkan saya
Saya memakai taffy untuk mengatur layout di kalender e-ink kecil berbasis Rust saya, jadi kabar seperti ini terdengar sangat menarik
Saya sangat menyukai pendekatan membagi engine web menjadi modul API publik yang bisa dipakai secara independen. Dulu saat melihat WebRTC, saya sering berpikir kenapa membuat tiruan Skype murahan harus berarti memilih antara JavaScript 50 baris atau mimpi buruk build Chromium C++ selama seminggu. Syukurlah sekarang sudah ada crate Rust untuk WebRTC juga, jadi bukan hanya aplikasi web yang menikmati manfaat dari investasi seperti ini
Saya merasa Mozilla akan masuk ke aula kehormatan perusahaan seperti Xerox, yaitu "perusahaan yang menciptakan teknologi masa depan lalu tanpa sadar membiarkan pesaing merebutnya". Dengan Rust dan Servo, mereka sempat melampaui Google dalam pengembangan browser, jadi saya benar-benar tidak mengerti kenapa mereka tidak terus mendorongnya
Mozilla berbeda dari Xerox. Kalau ada yang bisa disebut Xerox baru, justru Google. Google menginvestasikan dana besar ke divisi R&D tanpa rencana bisnis yang jelas. Contoh paling representatif adalah model transformer—pada dasarnya Google lebih dulu membuat fondasi LLM, tetapi akhirnya tetap tertinggal dari OpenAI. Keberhasilan Mozilla selalu berpusat pada browser web seperti Netscape dan Firefox. Rust sendiri pada dasarnya adalah bahasa yang dibuat untuk browser, dan fakta bahwa ia berguna di tempat lain hanyalah efek samping yang bagus
Google adalah sumber pendapatan utama Mozilla sejak 2006. Agar Mozilla bisa bertahan, mereka hanya perlu menjaga Google tetap puas. Ini berpotensi menimbulkan konflik, tetapi dari sudut pandang Mozilla itu transaksi yang cukup bagus
Saya rasa Mozilla sudah selesai. Mereka terlalu bergantung pada Google, dan sekarang bahkan itu pun bisa hilang. Servo dan Ladybird akan menjadi masa depan, dan sangat mengesankan melihat Ladybird berkembang cepat dengan jumlah orang yang sedikit
Jika Mozilla sampai menyerah pada Gecko, saat itulah waktunya melakukan hard fork dan eksodus dari Mozilla. Sebagai catatan, yang saya maksud dengan menyerah pada Gecko bukan beralih ke Servo, melainkan beralih ke Chromium
Rasanya sulit membuat orang mau membayar untuk browser. Mereka dengan mudah membayar bir 10 euro, tetapi banyak orang di sekitar saya bahkan berusaha menghindari lisensi WhatsApp seumur hidup seharga 0,99 euro
Saya masih tidak mengerti mengapa Mozilla menyerah pada masa depan teknis Firefox. Namun, kalau melihat Mozilla dari sudut arus dananya, banyak hal jadi lebih masuk akal
Penutupan layanan Pocket juga contoh yang menyedihkan. Saya sempat membayangkan lelucon April Mop di mana Mozilla mengumumkan bahwa Firefox dihentikan agar mereka bisa fokus pada bisnis inti. Itu lelucon pahit, seolah-olah ide platonik mereka tentang bisnis inti justru adalah menghentikan produk populer dengan indah
Dari berbagai kepergian orang dan cara komunikasinya, saya merasa Mozilla saat itu adalah perusahaan yang sangat politis. Servo sangat aktif berkomunikasi dan Rust juga punya suasana yang bagus, jadi saya kadang berpikir justru itu yang membuat pihak atas merasa tidak nyaman. Mozilla masih banyak dijalankan oleh figur lama, dan saya rasa kesalahan terbesar ada pada eksekutif puncak
Saya masih sangat yakin Servo bisa menjadi penantang nyata terhadap dominasi Chrome/Chromium. Saya tidak mengerti kenapa Mozilla meninggalkannya, dan kenapa Linux Foundation hampir tidak memberi dukungan
Jika melihat strategi Mozilla dari sudut tujuan jangka panjang untuk mandiri dari pendanaan Google, ada logikanya. Pendapatan non-Google memang naik dari 80 juta dolar pada 2022 menjadi 150 juta dolar pada 2023. Total aset juga bertambah 100 juta dolar per tahun hingga mencapai 1 miliar dolar pada 2023. Porsi dana Google turun dari 90% pada 2020 menjadi 75% pada 2023. Jadi walau belum sepenuhnya mandiri, ada arah yang jelas. Bertentangan dengan yang sering orang katakan, kalau hanya melihat arus dana, kesimpulannya bisa berbeda. Orang sering mengkritik bahwa mereka seharusnya mempertahankan Servo, tetapi saya rasa setelah Quantum, Servo sebenarnya tidak lagi berperan besar di Firefox
Apakah benar sebagian besar pendapatan Mozilla berasal dari Firefox?
Ada juga Ladybird(situs resmi) yang akan menantang dominasi Blink. Saya belum yakin bagaimana hasilnya nanti, tetapi saya menantikannya
Saya tidak begitu paham tujuan Ladybird. Jelas ini bukan sekadar proyek hobi, karena ada mantan engineer dan mereka juga mengumpulkan donasi. Tetapi saya sulit membayangkan apakah mereka bisa bersaing dengan Blink, Webkit, dan Gecko dari sisi fitur, keamanan, dan performa. Timnya memang tidak sebesar itu, jadi tanpa adopsi luas rasanya membuat engine saja tidak akan berdampak besar. Ini juga berlaku untuk Servo, tetapi Servo setidaknya punya tujuan teknis yang lebih meyakinkan. Untuk Ladybird, saya belum melihat penjelasan sejelas itu
Secara teknis saja, saya kurang melihat daya tarik Ladybird. Pada dasarnya ditulis dalam C++, jadi tidak terlihat berbeda dari Gecko atau Blink. Servo terasa menarik karena punya perbedaan desain teknis yang jelas, seperti keamanan dan paralelisme
Saya berharap Ladybird berhasil. Sekarang bahkan sudah bisa didukung langsung, dan itu terasa berarti. Tidak seperti Mozilla, saya yakin donasi yang terkumpul akan sepenuhnya dipakai untuk pengembangan browser
Saya penasaran apakah Ladybird sedang mencoba beralih ke Swift. Kalau engine browser dibuat dengan C++, saya memang kurang suka, tetapi itu terasa realistis dan fokus pada hasil. Kalau pakai Rust, saya bisa mengakui ada nuansa lebih berpandangan ke depan. Namun membuat engine dengan bahasa lain seperti Swift justru terlihat seperti keputusan politik internal perusahaan. Saya mempertanyakan kenapa harus memilih bahasa yang ekosistem pendukungnya masih kurang (tweet rujukan)
Uji Dogemania berjalan mulus di 60 FPS hingga 400 gambar pada M4 Pro MacBook Pro, tetapi di Chrome 60 FPS bertahan sampai 1400 gambar, lalu saya menutupnya karena malas melanjutkan
Saya juga mencoba eksperimen yang sama, dan perbedaan Firefox dengan Chromium sangat mengecewakan. Di Chromium, lebih dari 1000 gambar masih terus berjalan di 100 FPS, sedangkan di Firefox begitu melewati 500 gambar langsung turun di bawah 60 FPS. Mungkin ini bukan tes yang sepenuhnya adil (Chromium saya tidak punya add-on dan jarang dipakai), tetapi saya merasa perbandingan performanya mengatakan banyak hal
Jika gambar di dogemania diam setelah animasi selesai, bukankah itu contoh yang sangat mudah dioptimalkan? Saya sampai merasa komputer lama seperti Amiga pun bisa menangani ini tanpa batas
Menyebut Servo sebagai engine 'baru' terasa agak dipaksakan
Saya tahu Rust dibuat untuk browser web Servo
Tentang pendapat bahwa “jika hanya tersisa satu implementasi standar, maka implementasi itu sendiri akan menjadi standar”, saya tidak begitu paham kenapa itu dianggap masalah. Jika implementasinya open source dan spesifikasinya ditentukan oleh komite yang dikelola banyak pihak, saya rasa tidak apa-apa. Situasi sekarang, di mana sumber daya besar dihabiskan untuk membuat banyak engine, justru terasa boros. Menurut saya akan lebih efisien jika engine browser dibuat satu saja seperti kernel Linux, lalu yang berbeda hanya distribusinya
Sebaik apa pun niatnya, implementasi tetap akan menyisakan bug dan cacat kecil. Tanpa implementasi independen kedua, akhirnya bug itu sendiri akan menjadi standar karena “semuanya berjalan”. Jika halaman web mulai bergantung pada bug semacam ini, maka pada akhirnya yang menentukan bukan spesifikasinya, melainkan cacat detail implementasi tertentu. Itulah yang terjadi pada MS Windows, di mana UI lama menumpuk dalam banyak lapisan dan menjaga kompatibilitas menjadi mimpi buruk. Jika ada beberapa implementasi independen, standar bisa benar-benar dipertahankan dan dikembangkan, dan optimisasi juga jadi lebih mudah
Secara teori mungkin tidak masalah, tetapi dalam praktiknya, kepentingan pengembang tunggal tidak selalu sejalan dengan pengguna, jadi monopoli menurut saya tidak diinginkan. Terutama penghapusan manifest v2 di Blink baru-baru ini juga tidak disukai pengguna
Semakin banyak engine browser, semakin kecil risiko satu celah keamanan menghantam semuanya sekaligus. Bahkan dengan bahasa yang memory-safe, kesalahan logika tetap bisa menimbulkan dampak, jadi keberagaman itu penting
Anda menyebut strategi “satu engine dengan banyak distribusi”, tetapi bagi orang yang terbiasa dengan lingkungan BSD atau ZFS, justru saat keluar dari cara lama itu terasa sekali bedanya dalam hal kestabilan dan kematangan
Pendapat Google atau orang-orang dekat kubu itu saja sekarang sudah sangat memengaruhi standardisasi. Kalau semuanya sepenuhnya digerakkan oleh Chromium, keadaannya hanya akan makin buruk. Mungkin memang harus terjadi bencana besar dulu agar semua orang mengakui keterbatasan tempat seperti W3C dan WHATWG
“Sebagian besar situs web memiliki sedikit bug rendering dan beberapa sama sekali tidak berfungsi. Hasil pencarian Google punya banyak elemen yang saling menimpa, dan beranda MacRumors crash setelah di-scroll. Namun Wikipedia, CNN Lite, situs pribadi, dan teks NPR berjalan sempurna” — ketika melihat pengamatan seperti ini, saya hampir tidak pernah melihat orang mengatakan bahwa pihak Google atau MacRumors-lah yang seharusnya memperbaiki situs mereka agar cocok dengan Servo. Yang muncul justru selalu kesimpulan bahwa Servo harus bertindak seperti Chrome/Chromium, dan itu sangat disayangkan. Kalau begitu, (a) pada akhirnya perusahaan iklan yang akan menentukan standar, dan (b) para pembuat halaman web akan memiliki motivasi yang salah. Menyesuaikan ke arah yang lebih sederhana seperti Wikipedia atau CNN Lite justru lebih mudah. Saya pikir browser yang 'standar' seharusnya mengejar standar yang sebenarnya, bukan sekadar yang paling populer. Standar yang sesungguhnya adalah yang berjalan baik di browser tidak populer maupun browser populer. Pada akhirnya jawabannya bukan memperbaiki browser web, melainkan memperbaiki halaman web. Saya masih bereksperimen dengan pustaka dan alat libwww asli dari w3c, dan dengan sedikit penyesuaian itu masih bekerja sangat baik bahkan setelah lebih dari 30 tahun untuk mengoptimalkan halaman web berbasis teks. Internet adalah barang publik, tetapi browser dan halaman saat ini terlalu condong ke optimasi iklan dan pengumpulan data pribadi, dan itu sangat disayangkan. Menurut saya, hanya jika halaman dan browser benar-benar mengutamakan pengguna www barulah semuanya punya makna. Di bawah ini ada skrip sederhana untuk membangun biner statis dengan libwww
Sangat menyedihkan melihat Mozilla berubah dari perusahaan browser yang kompetitif menjadi organisasi yang makin terasa seperti kelompok aktivis, sehingga produk intinya tampak makin melemah