Landskap pelayar web telah lama didominasi oleh segelintir pemain utama, menjadikan sebarang pendatang baru sangat diperhatikan. Vaev, enjin HTML/CSS yang menyifatkan dirinya sebagai pantas, ringan, dan selamat, baru-baru ini muncul dan mencetuskan perbincangan penting dalam komuniti pembangun tentang masa depan teknologi pelayar, pertimbangan keselamatan, dan kebolehlaksanaan pendekatan alternatif untuk pemaparan web.
Projek Vaev dan Tujuannya
Vaev sedang dibangunkan oleh sekumpulan empat penyumbang dan kini menyokong subset piawaian web termasuk kebanyakan jenis paparan (tidak termasuk grid), tingkah laku lata CSS standard, penomboran halaman menggunakan peraturan @page, output cetak-ke-PDF, dan pelbagai unit CSS termasuk peratusan, var(), dan calc(). Walaupun keupayaan rangkaiannya kini terhad kepada protokol HTTP dan fail, projek ini mewakili percubaan yang bercita-cita tinggi untuk mencipta enjin pelayar baharu dari awal.
Salah seorang pembangun utama projek ini mendedahkan bahawa Vaev mempunyai aplikasi praktikal khusus selain menjadi latihan pembelajaran. Ia sedang dibangunkan untuk menjadi teras paper-muncher, enjin pemaparan PDF yang bertujuan untuk menggantikan wkhtmltopdf di Odoo, satu suite perisian perniagaan sumber terbuka yang popular. Kes penggunaan yang difokuskan ini membantu menjelaskan penekanan projek pada keupayaan cetak-ke-PDF dan ciri-ciri penomboran halaman.
Sokongan Ciri Semasa Vaev:
- Kebanyakan jenis paparan (kecuali grid)
- Tingkah laku lata CSS standard
- Penomboran halaman menggunakan peraturan @page
- Output cetak-ke-PDF
- Semua unit CSS, termasuk peratusan, var(), dan calc()
- Pemuatan dokumen HTML dan XHTML
- Rangkaian asas (hanya http:// dan file://)
Penyumbang Projek:
- Lou!
- LuneMercier
- Paulo Medeiros
- Sleepy Monax
Kes Penggunaan Utama:
- Teras enjin rendering PDF "paper-muncher"
- Bertujuan untuk menggantikan wkhtmltopdf di Odoo
Kontroversi Pilihan Bahasa
Mungkin perbincangan paling hangat mengenai Vaev adalah berkaitan pelaksanaannya dalam C++. Ramai pengulas mempersoalkan pilihan ini, berhujah bahawa pelayar pada dasarnya adalah kerentanan RCE dan C++ secara sejarah telah menjadi sumber bagi banyak isu keselamatan dalam kod pelayar.
Saya berminat untuk mengetahui mengapa C++ dipilih untuk ini? Pelayar terkenal sukar untuk diamankan, ia secara efektif bermaksud untuk menjadi kerentanan RCE! Mengamankan binari C++ adalah sukar dan dalam tahun-tahun kebelakangan ini telah disebut oleh pelbagai organisasi dan syarikat sebagai punca utama bagi banyak kelas kerentanan keselamatan.
Pembela pilihan ini menunjukkan bahawa pembangun mungkin mempunyai pengalaman luas dalam C++, dan menulis enjin pelayar memerlukan kemahiran bahasa yang mendalam. Ada juga yang menyatakan bahawa kod sumber menunjukkan amalan C++ moden berkualiti tinggi, dengan penunjuk pintar dan corak RAII yang boleh mengurangkan banyak kebimbangan keselamatan C++ tradisional.
Pasukan Vaev telah menjawab kebimbangan keselamatan dengan menyatakan bahawa mereka sedang meneroka ciri-ciri keselamatan yang dikuatkuasakan oleh pengompil dalam Clang, termasuk atribut pemeriksaan jangka hayat dan penggunaan penunjuk terhad di luar blok yang ditetapkan - pendekatan yang memberikan beberapa faedah keselamatan yang terdapat dalam bahasa seperti Rust.
Perbincangan Smolweb
Kemunculan Vaev telah mencetuskan semula perbualan berulang tentang piawaian subset teknologi web yang minimal. Ramai pembangun menyatakan minat dalam menentukan piawaian smolweb - subset piawaian web yang terhad dan konsisten yang boleh dilaksanakan oleh pelayar alternatif tanpa perlu melaksanakan keseluruhan keserasian web.
Cadangan untuk piawaian hipotetikal ini berkisar dari menggunakan spesifikasi lama seperti HTML 4.01 dan CSS 2.1 hingga memberi tumpuan kepada ciri-ciri moden tetapi penting seperti CSS Grid sambil menghapuskan kerumitan yang tidak perlu. Sesetengah mencadangkan menggunakan keserasian HTML e-mel sebagai asas, sementara yang lain mencadangkan bermula dengan keperluan minimum yang diperlukan untuk pemaparan Markdown.
Perbincangan ini menyoroti keinginan yang semakin meningkat untuk teknologi web yang lebih mudah dan lebih fokus yang boleh membolehkan kepelbagaian pelayar yang lebih besar tanpa memerlukan sumber kejuruteraan yang sangat besar yang diperlukan untuk bersaing dengan pelayar dominan.
Cabaran dan Prospek Masa Depan
Membina enjin pelayar baru adalah usaha yang sangat kompleks, dengan banyak pengulas menyatakan bahawa pelayar secara efektif telah menjadi sistem operasi tersendiri. Jumlah kod yang diperlukan untuk fungsi asas (dengan Vaev sudah mengandungi banyak fail yang melebihi 500 baris) menunjukkan mengapa sangat sedikit enjin pelayar baru muncul.
Walaupun masa depan terdekat Vaev kelihatan tertumpu pada pemaparan dokumen dan penjanaan PDF berbanding pelayaran web umum, para pembangun tidak menolak kemungkinan untuk akhirnya menyokong JavaScript dan ciri-ciri web yang lebih komprehensif. Seni bina projek ini direka untuk menjadi merentas platform dari awal, tidak seperti beberapa projek pelayar alternatif lain yang bermula sebagai pelaksanaan khusus untuk sistem operasi tertentu.
Ketika teknologi web terus berkembang menjadi lebih kompleks, projek seperti Vaev menyediakan penerokaan berharga terhadap pendekatan alternatif dan kes penggunaan khusus. Sama ada memberi tumpuan kepada pemaparan dokumen, piawaian web minimal, atau peningkatan keselamatan, eksperimen ini menyumbang kepada perbualan yang lebih luas tentang arah masa depan teknologi web dan kepelbagaian pelayar.
Rujukan: skift-org/vaev