Andreas Kling, themeluesi i shfletuesit web Ladybird, shpalli vendimin për të përdorur gjuhën Rust gjatë zhvillimit të projektit dhe për të filluar riprogramimin e pjesëve të Ladybird në këtë gjuhë. Si një eksperiment, motorri JavaScript LibJS është riprogramuar nga C++ në Rust. LibJS është zgjedhur për shkak të mbulimit të mirë me teste, që lehtëson vlerësimin e cilësisë së portimit.
Për të përshpejtuar portimin, u angazhuan asistencat AI Claude Code dhe OpenAI Codex, falë të cilave kodi arriti të riprogramohej brenda dy javësh. Përkthimi u realizua gradualisht me pjesëmarrjen e një zhvilluesi, i cili gjatë procesit dërgoi asistencave AI disa qindra promptesh, duke vendosur se në cilën rend dhe çfarë të portonte, si dhe duke shënuar kërkesat për kodin e rezultatit në Rust. Pas marrjes së kodit në modelet e ndryshme AI, u realizua një rishikim i rezultateve dhe një analizë e kodit për gabime dhe zgjidhje të dyshimtë.
Kështu, versioni i riprogramuar në Rust kaloi me sukses të gjitha 52898 testet për përputhshmërinë me ECMAScript nga grumbulli test262 dhe 12461 testet regresive nga projekti Ladybird. Versioni në Rust tregoi përputhje të plotë të AST dhe kodit byte të gjeneruar me versionin në C++, pa identifikuar regresione deri tani. Në testet e JavaScript gjithashtu nuk u identifikua ndonjë ulje e performancës. Për më tepër, përputhja e plotë u tregua në testimin krahasues të rezultateve të përpunimit të faqeve duke përdorur versionet LibJS në C++ dhe Rust.
Riprogramimi i komponentëve të shfletuesit në Rust shikohet si një projekt dytësor, i cili mund të marrë shumë kohë. Zhvillimi kryesor ende vazhdon në gjuhën C++. Vendimet për nën-sistemet që do të riprogramohen në Rust do të merren nga ekipi kryesor i zhvilluesve. Kodi i ri në Rust do të ekzistojë ngjashëm me kodin ekzistues në C++ përmes niveleve të qarta të ndërveprueshmërisë.
ĂshtĂ« e rĂ«ndĂ«sishme tĂ« theksohet se nĂ« vitin 2024 zhvilluesit e Ladybird vendosĂ«n tĂ« pĂ«rdorin gjuhĂ«n e programimit Swift, por u pĂ«rballĂ«n me ndĂ«rprerjen e pamjaftueshme me kodin nĂ« C++ dhe mbĂ«shtetje tĂ« kufizuar pĂ«r platforma tĂ« ndryshme nga Apple. Sa i pĂ«rket Rust, ky zakon ka njĂ« ekosistem mĂ« tĂ« zhvilluar pĂ«r programim sistemik dhe sigurim. PĂ«r mĂ« tepĂ«r, mes zhvilluesve tĂ« Ladybird ka shumĂ« anĂ«tarĂ« qĂ« janĂ« tĂ« njohur me kĂ«tĂ« gjuhĂ«. NĂ« vitin 2024, gjuha Rust nuk u miratua pĂ«r pĂ«rdorim nĂ« Ladybird pĂ«r shkak tĂ« paradigmĂ«s sĂ« zhvillimit tĂ« bazuar nĂ« pronĂ«si, e cila nuk pĂ«rputhet plotĂ«sisht me stilin objektor tĂ« C++.
Andreas Kling dikur punonte në kompaninë Nokia dhe merrej me zhvillimin e KHTML, dhe më pas në Apple ishte një nga zhvilluesit e Safari. Fillimisht projekti Ladybird u krijua si një aplikacion për sistemin operativ SerenityOS, por verën e vitit 2024 u ndan në një projekt të veçantë dhe mori një donacion prej 1 milion dollarësh. Shfletuesi është shkruar në gjuhën C++ dhe shpërndahen nën licencën BSD. Projekti zhvillon motorin e vet LibWeb, interpretorin e JavaScript LibJS dhe bibliotekat përkatëse.
Burimi: opennet.ru
