Ladybird Browser-komponente word in Rust herskryf met behulp van KI.

Andreas Kling, stigter van die Ladybird-webblaaier, het die besluit aangekondig om Rust in die projek se ontwikkeling te gebruik en die begin van die herskryf van dele van Ladybird in hierdie taal. As 'n eksperiment met C++ is die LibJS JavaScript-enjin reeds in Rust herskryf. LibJS is gekies vanweë sy goeie toetsdekking, wat die beoordeling van die poort se kwaliteit vereenvoudig.

Om die oordragproses te bespoedig, is KI-assistente Claude Code en OpenAI Codex gebruik, wat die herskrywing van die kode binne twee weke moontlik gemaak het. Die vertaling is progressief uitgevoer met die ontwikkelaar se insette, wat tydens die proses etlike honderde aanwysings na die KI-assistente gestuur het, waarin hulle besluit het in watter volgorde en wat oorgedra moes word, asook die vereistes vir die gevolglike Rust-kode gespesifiseer het. Nadat die kode van verskeie KI-modelle ontvang is, is die resultaat hersien en ontleed vir foute en twyfelagtige besluite.

Uiteindelik het die Rust-gebaseerde enjin al 52 898 ECMAScript-versoenbaarheidstoetse van die test262-suite en 12 461 regressietoetse van die Ladybird-projek suksesvol geslaag. Die Rust-weergawe het volledige ooreenstemming tussen die gegenereerde AST en bytekode en die C++-weergawe getoon, met geen regressies wat tot dusver opgespoor is nie. JavaScript-toetse het ook geen prestasievermindering getoon nie. Verder het 'n vergelykende toets van webwerfverwerkingsresultate met behulp van die C++- en Rust-weergawes van LibJS volledige ooreenstemming getoon.

Die herskryf van blaaierkomponente in Rust word as 'n sekondêre projek beskou wat 'n aansienlike hoeveelheid tyd kan neem. Primêre ontwikkeling is tans aan die gang in C++. Besluite oor watter substelsels in Rust herskryf sal word, sal deur die kernontwikkelingspan geneem word. Nuwe Rust-kode sal saam met bestaande C++-kode bestaan ​​deur middel van eksplisiet gedefinieerde interoperabiliteitslae.

Dit is opmerklik dat Ladybird-ontwikkelaars in 2024 besluit het om die Swift-programmeertaal te gebruik, maar onvoldoende interoperabiliteit met C++-kode en beperkte ondersteuning vir nie-Apple-platforms teëgekom het. Wat Rust betref, is hierdie taal bekend vir sy meer volwasse ekosisteem vir stelselprogrammering en veiligheidswaarborge. Verder is baie van die Ladybird-ontwikkelaars vertroud met hierdie taal. In 2024 is Rust nie goedgekeur vir gebruik in Ladybird nie as gevolg van sy eienaarskapsgebaseerde ontwikkelingsparadigma, wat bots met die objekgeoriënteerde styl van C++.

Andreas Kling het eens by Nokia gewerk om KHTML te ontwikkel, en later by Apple as een van die Safari-ontwikkelaars. Ladybird is oorspronklik geskep as 'n toepassing vir die SerenityOS-bedryfstelsel, maar in die somer van 2024 is dit in 'n aparte projek afgestig en 'n skenking van $1 miljoen ontvang. Die blaaier is in C++ geskryf en versprei onder die BSD-lisensie. Die projek ontwikkel sy eie LibWeb-enjin, die LibJS JavaScript-interpreteerder en verwante biblioteke.

Bron: opennet.ru