Andreas Kling, themeluesi i shfletuesit web Ladybird, shpalli vendimin për të përdorur gjuhën Rust në zhvillimin e projektit dhe për të filluar ri-shkrimin e pjesëve të Ladybird në këtë gjuhë. Si një eksperiment, motori JavaScript LibJS është ri-shkruar nga C++ në Rust. LibJS u zgjodh për shkak të mbulimit të tij të mirë me teste, duke e thjeshtuar vlerësimin e cilësisë së portimit.
Për të aceleruar portimin, u angazhuan asistentët AI Claude Code dhe OpenAI Codex, duke e bërë të mundur ri-shkrimin e kodit brenda dy javësh. Përkthimi u realizua hapat-hapa me pjesëmarrjen e një zhvilluesi, i cili gjatë procesit dërgoi asistentëve AI disa qindra komanda, duke vendosur se në cilën renditje dhe çfarë të portonte, si dhe duke specifikuar kërkesat për kodin përfundimtar në Rust. Pas marrjes së kodit në modele të ndryshme AI, u krye rishikimi i rezultatit dhe analiza e kodit për gabime dhe zgjidhje të dyshimta.
Si gjithçka është përfunduar, versioni i ri i engine-it i shkruar në Rust ka kaluar me sukses të gjitha 52898 testet për përputhshmërinë me ECMAScript nga seti test262 dhe 12461 testet regresive nga projekti Ladybird. Versioni në Rust ka treguar përputhshmëri të plotë të AST të gjeneruar dhe kodit të bajtave me versionin në C++, dhe deri tani nuk janë identifikuar regresione. Po ashtu, në testet JavaScript nuk ka pasur ulje të performancës. Për më tepër, përputhshmëria e plotë u tregua në testet e krahasimit të rezultateve të përpunimit të faqeve me përdorimin e varianteve LibJS në C++ dhe Rust.
Rikodimi i komponentëve të shfletuesit në Rust konsiderohet si një projekt dytësor, i cili mund të marrë shumë kohë. Zhvillimi kryesor vazhdon akoma në gjuhën C++. Vendimet për nën-sistemet që do të rikodohen në Rust do të merren nga ekipi kryesor i zhvilluesve. Kodi i ri në Rust do të ekzistojë paralelisht me kodin ekzistues në C++ përmes niveleve të qarta të ndërveprueshmërisë.
ĂshtĂ« e veçantĂ« se nĂ« vitin 2024, zhvilluesit e Ladybird vendosĂ«n tĂ« pĂ«rdorin gjuhĂ«n programimi Swift, por u pĂ«rballĂ«n me ndĂ«rveprueshmĂ«ri tĂ« pamjaftueshme me kodin nĂ« C++ dhe mbĂ«shtetje tĂ« kufizuar pĂ«r platforma tĂ« tjera pĂ«rveç Apple. Sa i pĂ«rket Rust, ky gjuhĂ« ka njĂ« ekosistem mĂ« tĂ« zhvilluar pĂ«r programimin sistemor dhe garanci sigurie. PĂ«r mĂ« tepĂ«r, mes zhvilluesve tĂ« Ladybird ka shumĂ« anĂ«tarĂ« tĂ« njohur me kĂ«tĂ« gjuhĂ«. NĂ« vitin 2024, gjuha Rust nuk u miratua pĂ«r pĂ«rdorim nĂ« Ladybird pĂ«r shkak tĂ« paradigmes sĂ« zhvillimit tĂ« bazuar nĂ« pronĂ«si, e cila nuk pĂ«rputhet plotĂ«sisht me stilin objektor tĂ« C++.
Andreas Kling dikur ka punuar në kompaninë Nokia dhe është marrë me zhvillimin e KHTML, dhe më pas në Apple ka qenë një nga zhvilluesit e Safari. Fillimisht, projekti Ladybird u krijua si një aplikacion për sistemin operativ SerenityOS, por verën e vitit 2024 ai 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ërndahet nën licencën BSD. Projekti po zhvillon motorin e tij të veçantë LibWeb, interpretorin JavaScript LibJS dhe bibliotekat përkatëse.
Burimi: opennet.ru
