Andreas Kling, pendiri peramban web Ladybird, mengumumkan keputusan untuk menggunakan Rust dalam pengembangan proyek dan dimulainya penulisan ulang sebagian Ladybird dalam bahasa ini. Sebagai eksperimen dengan C++, mesin JavaScript LibJS telah ditulis ulang dalam Rust. LibJS dipilih karena cakupan pengujiannya yang baik, yang menyederhanakan penilaian kualitas porting.
Untuk mempercepat proses porting, digunakan asisten AI Claude Code dan OpenAI Codex, yang memungkinkan penulisan ulang kode selesai dalam dua minggu. Penerjemahan dilakukan secara bertahap dengan masukan dari pengembang, yang mengirimkan beberapa ratus perintah kepada asisten AI selama proses tersebut, memutuskan urutan dan bagian mana yang akan di-porting, serta menentukan persyaratan untuk kode Rust yang dihasilkan. Setelah menerima kode dari berbagai model AI, hasilnya ditinjau dan dianalisis untuk mencari kesalahan dan keputusan yang meragukan.
Pada akhirnya, mesin berbasis Rust berhasil melewati semua 52898 tes kompatibilitas ECMAScript dari rangkaian test262 dan 12461 tes regresi dari proyek Ladybird. Versi Rust menunjukkan kesesuaian sempurna antara AST dan bytecode yang dihasilkan dengan versi C++, tanpa regresi yang terdeteksi sejauh ini. Tes JavaScript juga menunjukkan tidak ada penurunan kinerja. Lebih lanjut, tes perbandingan hasil pemrosesan situs web menggunakan versi C++ dan Rust dari LibJS menunjukkan kesesuaian sempurna.
Penulisan ulang komponen browser dalam Rust dianggap sebagai proyek sekunder yang dapat memakan waktu yang cukup lama. Pengembangan utama saat ini sedang berlangsung dalam C++. Keputusan mengenai subsistem mana yang akan ditulis ulang dalam Rust akan dibuat oleh tim pengembangan inti. Kode Rust baru akan berdampingan dengan kode C++ yang ada melalui lapisan interoperabilitas yang didefinisikan secara eksplisit.
Yang perlu diperhatikan, pada tahun 2024, pengembang Ladybird memutuskan untuk menggunakan bahasa pemrograman Swift, tetapi menghadapi masalah interoperabilitas yang tidak memadai dengan kode C++ dan dukungan terbatas untuk platform non-Apple. Sedangkan untuk Rust, bahasa ini terkenal karena ekosistemnya yang lebih matang untuk pemrograman sistem dan jaminan keamanan. Selain itu, banyak pengembang Ladybird yang familiar dengan bahasa ini. Pada tahun 2024, Rust tidak disetujui untuk digunakan di Ladybird karena paradigma pengembangan berbasis kepemilikannya, yang bertentangan dengan gaya berorientasi objek C++.
Andreas Kling pernah bekerja di Nokia mengembangkan KHTML, dan kemudian bekerja di Apple sebagai salah satu pengembang Safari. Ladybird awalnya dibuat sebagai aplikasi untuk sistem operasi SerenityOS, tetapi pada musim panas 2024, proyek ini dipisahkan dan menerima donasi sebesar $1 juta. Browser ini ditulis dalam C++ dan didistribusikan di bawah lisensi BSD. Proyek ini sedang mengembangkan mesin LibWeb sendiri, interpreter JavaScript LibJS, dan pustaka terkait.
Sumber: opennet.ru
