Andreas Kling, Ladybird veebibrauseri asutaja, teatas otsusest kasutada projekti arendamisel Rusti keelt ning alustada Ladybirdi osi selle keelde ümber kirjutamisega. Eksperimendina on C++-lt Rusti keelde juba ümber kirjutatud JavaScripti mootori LibJS kood. LibJS valiti hea testikatte tõttu, mis lihtsustab portimise kvaliteedi hindamist.
Portimise kiirendamiseks kaasati tehisintellekti assistendid Claude Code ja OpenAI Codex, tänu millele õnnestus koodi ümber kirjutada kahe nädalaga. Tõlkimine toimus järk-järgult arendaja osavõtul, kes saatis AI-assistentidele mitu sada üleskutset, otsustades, millises järjestuses ja mida portida, samuti märkides Rusti keeles tulevase koodi nõuded. Pärast erinevates AI-mudelitega koodi saamist viidi läbi tulemuste ülevaatus ja koodi analüüs vigade ja kahtlaste lahenduste osas.
Tulemusena läbis Rustis ümber kirjutatud mootori versioon edukalt kõik 52898 testimist ECMAScripti ühilduvuse kohta test262 komplektist ja 12461 regressioonitestist Ladybirdi projektist. Rusti versioon näitas täielikku kokkulangevust genereeritud AST ja baitkoodiga C++ versiooniga, regressioone ei tuvastatud. JavaScripti testides ei leitud samuti jõudluse langust. Lisaks näitas täielik kokkulangevus võrdlev testimine LibJS C++ ja Rust versioonide tulemuste töötlemisel.
Brahvrise komponentide ümber kirjutamist Rustis peetakse kõrvalprojekti, mis võib võtta palju aega. Peamine arendus jätkub veel C++ keeles. Otsused alam-süsteemide kohta, mis kirjutatakse Rusti keeles ümber, teeb peamine arendajate meeskond. Uus Rusti keeles kirjutatud kood eksisteerib koos olemasoleva C++ koodiga selgelt määratletud ühtsuse tasandite kaudu.
Tähtis on, et 2024. aastal otsustasid Ladybirdi arendajad kasutada programmeerimiskeelt Swift, kuid nad seisid silmitsi piiratud ühilduvusega C++ koodiga ja piiratud toe vajadustega platvormide osas, mis ei kuulu Apple'i alla. Mis puudutab Rusti, siis selle keele puhul on märgitud küpsem ökosüsteem süsteemse programmeerimise ja ohutuse tagamiseks. Lisaks on Ladybirdi arendajate seas palju osalejaid, kes tunnevad seda keelt. 2024. aastal ei olnud Rusti keel ametlikult kinnitatud Ladybirdi kasutamiseks, kuna omandi põhine arenduspoliitika ei ühtinud täielikult objekti-orienteeritud C++ stiiliga.
Andreas Kling töötas kunagi ettevõttes Nokia, kus ta arendas KHTML-i, seejärel oli ta Apple'is üks Safari arendajatest. Alguses loodi Ladybird projekti operatsioonisüsteemile SerenityOS, kuid suvel 2024 eraldati see eraldi projektiks ja sai 1 miljoni dollari suuruse toetuse. Brauser on kirjutatud C++ keeles ja levitatakse BSD litsentsi alusel. Projekti raames arendatakse omaenda mootori LibWeb, JavaScripti tõlgendajat LibJS ja sellega seotud raamatukogusid.
Allikas: opennet.ru
