Componentele browserului Ladybird au început să fie rescrise în Rust cu ajutorul AI.

Andreas Kling, fondatorul browser-ului web Ladybird, a anunțat că va folosi limbajul Rust în dezvoltarea proiectului și a început să rescrie părți din Ladybird în acest limbaj. Ca experiment, motorul JavaScript LibJS a fost rescris din C++ în Rust. LibJS a fost ales datorită acoperirii bune prin teste, care facilitează evaluarea calității portării.

Pentru accelerarea portării, au fost implicate asistenți AI Claude Code și OpenAI Codex, ceea ce a permis rescrierea codului în două săptămâni. Traducerea a fost realizată progresiv, cu implicarea unui dezvoltator care a trimis asistenților AI câteva sute de prompturi, stabilind ordinea și ce să portăm, precum și cerințele pentru codul rezultat în Rust. După primirea codului în diferite modele AI, a fost efectuată o revizuire a rezultatelor și o analiză a codului pentru erori și soluții discutabile.

În cele din urmă, varianta motorului rescrisă în Rust a trecut cu succes cele 52898 de teste de compatibilitate cu ECMAScript din setul test262 și 12461 de teste de regresie din proiectul Ladybird. Varianta pe Rust a demonstrat o potrivire completă a AST-ului generat și a bytecode-ului cu varianta pe C++, fără regressii identificate până acum. În testele JavaScript nu a fost detectată nicio scădere a performanței. În plus, potrivirea completă a arătat o testare comparativă a rezultatelor procesării site-urilor utilizând variantele LibJS pe C++ și Rust.

Rescrierea componentelor browser-ului în Rust este considerată un proiect secundar, care ar putea dura mult timp. Dezvoltarea principală continuă deocamdată în limbajul C++. Deciziile cu privire la subsistemele care vor fi rescrise în Rust vor fi luate de echipa principală de dezvoltatori. Noul cod în Rust va coexista cu codul existent în C++ prin nivele de interoperabilitate bine definite.

Este remarcabil faptul că în 2024, dezvoltatorii Ladybird au decis să folosească limbajul de programare Swift, dar s-au confruntat cu interoperaționalitatea insuficientă cu codul C++ și cu suportul limitat pentru platformele care nu sunt Apple. În ceea ce privește Rust, acest limbaj beneficiază de un ecosistem mai matur pentru programarea de sistem și de garanții de siguranță. În plus, printre dezvoltatorii Ladybird se numără mulți participanți familiarizați cu acest limbaj. În 2024, limbajul Rust nu a fost aprobat pentru utilizare în Ladybird din cauza paradigmei de dezvoltare bazată pe proprietate, care nu se potrivește cu stilul orientat pe obiect al C++.

Andreas Kling a lucrat odată la compania Nokia, unde a fost implicat în dezvoltarea KHTML, iar apoi, la Apple, a fost unul dintre dezvoltatorii Safari. Proiectul Ladybird a fost inițial creat ca o aplicație pentru sistemul de operare SerenityOS, dar în vara anului 2024 a fost desprins ca un proiect de sine stătător și a primit o donație de 1 milion de dolari. Browserul este scris în C++ și este distribuit sub licența BSD. Proiectul dezvoltă propriul motor LibWeb, interpretatorul JavaScript LibJS și bibliotecile aferente.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster