Andreas Kling, Ladybird veebibrauseri asutaja, on teada andnud, et projektis hakatakse kasutama Rusti keelt, alustades osade ümberkirjutamist Ladybirdis. Eksperimentaalselt on C++-s kirjutatud JavaScript-mootor LibJS juba Rusti keelest uuesti üles ehitatud. LibJS valiti tänu heale testkatteule, mis lihtsustab portimise kvaliteedi hindamist.
Portimise kiirendamiseks kasutati AI-assistente Claude Code ja OpenAI Codex, tänu millele suudeti kood kahe nädala jooksul ümber kirjutada. Tõlkimine toimus järkjärguliselt arendaja kaasabil, kes saatis AI-assistentidele töö käigus mitmeid sadu prompt'e, otsustades, millises järjekorras ja mida portida, samuti andes nõudeid Rusti keeles saadud koodile. Erinevate AI mudelite kaudu saadud koodi tulemusi hinnati ja analüüsiti, vältimaks vigu ja kahtlusi tekitavaid lahendusi.
Lõpuks suudeti Rusti keeles kirjutatud mootor edukalt läbinud kõik 52898 ECMAScripti ühilduvustesti test262 komplektist ning 12461 regressiooni testi projektilt Ladybird. Rusti variant näitas täielikku ühtesatumist genereeritud AST ja bytecode'iga C++ variandiga, regressioone pole seni tuvastatud. JavaScripti testides ei tuvastatud ka jõudluse langust. Lisaks näitas täielik ühtesatumine C++ ja Rusti variantide lehtede töötlemise tulemuste võrreldavas testimises.
Brauseri komponentide kirjutamine Rustiga peetakse kõrvalprojektiks, mis võib võtta palju aega. Peamine arendus jätkub endiselt C++ keeles. Otsused alamsüsteemide kohta, mida kirjutatakse Rustiga, teeb põhimeeskond. Uus Rusti kood kooseksisteerib olemasoleva C++ koodiga selgelt määratletud interoperatiivsuse tasandite kaudu.
Tähtis on, et 2024. aastal otsustasid Ladybird'i arendajad kasutada programmeerimiskeelt Swift, kuid nad said kogeda ebapiisavat ühilduvust C++ koodiga ja piiratud toetust muudele kui Apple'i platvormidele. Mis puutub Rusti, siis selle keele puhul on märgitud küpsem ökosüsteem süsteemiprogrammeerimiseks ja turvalisuse tagamiseks. Lisaks on Ladybird'i arendajate seas palju liikmeid, kes tunnevad seda keelt. 2024. aastal ei olnud Rust keelena Ladybird'is kasutamiseks kinnitatud, kuna omamisest lähtuv arendusparadigma ei sobi eriti hästi objektorienteeritud C++ stiiliga.
Andreas Kling on kunagi töötanud ettevõttes Nokia ja arendanud KHTML, seejärel oli ta Apple'is üks Safari arendajatest. Alguses loodi Ladybird projekt SerenityOS operatsioonisüsteemi rakendusena, kuid suvel 2024. aastal eraldati see eraldi projektiks ning sai 1 miljoni dollari suuruse annetuse. Brauser on kirjutatud C++ keeles ja levitatakse BSD litsentsi alusel. Projekt arendab oma veebimootorit LibWeb, JavaScript'i tõlgendajat LibJS ja seotud teeke.
Allikas: opennet.ru
