Ladybird web tarayıcısının kurucusu Andreas Kling, projenin geliştirilmesinde Rust kullanma kararını ve Ladybird'ün bazı bölümlerinin bu dilde yeniden yazılmaya başlandığını duyurdu. C++ ile bir deneme olarak, LibJS JavaScript motoru zaten Rust'ta yeniden yazılmıştı. LibJS, test kapsamının iyi olması ve bu sayede portun kalitesinin değerlendirilmesinin kolaylaşması nedeniyle tercih edildi.
Taşıma sürecini hızlandırmak için, yapay zeka asistanları Claude Code ve OpenAI Codex kullanıldı ve kod yeniden yazımı iki hafta içinde tamamlandı. Çeviri, geliştiricinin girdileriyle aşamalı olarak gerçekleştirildi; geliştirici, süreç boyunca yapay zeka asistanlarına yüzlerce komut göndererek hangi sırayla ve neyin taşınacağına karar verdi ve ortaya çıkan Rust kodu için gereksinimleri belirtti. Çeşitli yapay zeka modellerinden kod alındıktan sonra, sonuç hatalar ve şüpheli kararlar açısından incelendi ve analiz edildi.
Sonuç olarak, Rust tabanlı motor, test262 paketinden alınan 52898 ECMAScript uyumluluk testinin ve Ladybird projesinden alınan 12461 regresyon testinin tamamını başarıyla geçti. Rust sürümü, oluşturulan AST ve bayt kodu ile C++ sürümü arasında tam bir eşleşme gösterdi ve şu ana kadar herhangi bir gerileme tespit edilmedi. JavaScript testleri de performans düşüşü göstermedi. Ayrıca, LibJS'nin C++ ve Rust sürümlerini kullanan web sitesi işleme sonuçlarının karşılaştırmalı bir testi de tam bir eşleşme gösterdi.
Tarayıcı bileşenlerinin Rust dilinde yeniden yazılması, önemli miktarda zaman alabilecek ikincil bir proje olarak değerlendirilmektedir. Birincil geliştirme şu anda C++ dilinde devam etmektedir. Hangi alt sistemlerin Rust dilinde yeniden yazılacağına ilişkin kararlar, çekirdek geliştirme ekibi tarafından verilecektir. Yeni Rust kodu, açıkça tanımlanmış birlikte çalışabilirlik katmanları aracılığıyla mevcut C++ koduyla birlikte var olacaktır.
Özellikle 2024 yılında Ladybird geliştiricileri Swift programlama dilini kullanmaya karar verdiler, ancak C++ koduyla yetersiz birlikte çalışabilirlik ve Apple dışı platformlar için sınırlı destekle karşılaştılar. Rust ise sistem programlaması için daha olgun bir ekosisteme ve güvenlik garantilerine sahip olmasıyla biliniyor. Ayrıca, Ladybird geliştiricilerinin çoğu bu dile aşina. 2024 yılında Rust, C++'ın nesne yönelimli stiliyle çatışan sahiplik tabanlı geliştirme paradigması nedeniyle Ladybird'de kullanım için onaylanmadı.
Andreas Kling bir zamanlar Nokia'da KHTML geliştirme alanında çalışmış, daha sonra Apple'da Safari geliştiricilerinden biri olarak görev almıştır. Ladybird başlangıçta SerenityOS işletim sistemi için bir uygulama olarak oluşturulmuş, ancak 2024 yazında ayrı bir proje haline getirilmiş ve 1 milyon dolarlık bir bağış almıştır. Tarayıcı C++ dilinde yazılmış olup BSD lisansı altında dağıtılmaktadır. Proje, kendi LibWeb motorunu, LibJS JavaScript yorumlayıcısını ve ilgili kütüphaneleri geliştirmektedir.
Kaynak: opennet.ru
