I componenti del browser Ladybird hanno iniziato ad essere riscritti in Rust con l'aiuto dell'AI.

Andreas Kling, fondatore del browser web Ladybird, ha annunciato la decisione di utilizzare il linguaggio Rust per lo sviluppo del progetto e ha iniziato a riscrivere alcune parti di Ladybird in questo linguaggio. Come esperimento, il motore JavaScript LibJS è già stato riscritto da C++ a Rust. LibJS è stato scelto per la buona copertura dei test, che facilita la valutazione della qualità del porting.

Per accelerare il porting, sono stati utilizzati assistenti AI Claude Code e OpenAI Codex, grazie ai quali il codice è stato riscritto in due settimane. La traduzione è avvenuta progressivamente con la partecipazione di uno sviluppatore, che durante il lavoro ha inviato agli assistenti AI diverse centinaia di prompt, decidendo in quale ordine e cosa portare, oltre a indicare i requisiti per il codice risultante in Rust. Dopo aver ricevuto il codice dai vari modelli AI, è stata effettuata una revisione dei risultati e un'analisi del codice per errori e decisioni discutibili.

Alla fine, la versione riscritta in Rust del motore ha superato con successo tutti i 52898 test di compatibilità con ECMAScript del set test262 e 12461 testi di regressione dal progetto Ladybird. La versione in Rust ha dimostrato una corrispondenza completa tra l'AST generato e il bytecode con la versione in C++, senza regressioni rilevate finora. Nei test di JavaScript non è stato inoltre registrato alcun calo delle prestazioni. Inoltre, la corrispondenza completa ha dimostrato un confronto dei risultati di elaborazione dei siti utilizzando le versioni LibJS in C++ e Rust.

La riscrittura dei componenti del browser in Rust è considerata un progetto secondario, che potrebbe richiedere molto tempo. Lo sviluppo principale continua per ora in C++. Le decisioni sulle sottosistemi che saranno riscritti in Rust saranno prese dal team principale di sviluppatori. Il nuovo codice in Rust coesisterà con il codice esistente in C++ attraverso livelli di interoperabilità esplicitamente definiti.

È interessante notare che nel 2024 gli sviluppatori di Ladybird hanno deciso di utilizzare il linguaggio di programmazione Swift, ma hanno riscontrato una scarsa interoperabilità con il codice C++ e un supporto limitato per le piattaforme diverse da Apple. Per quanto riguarda Rust, questo linguaggio ha un ecosistema più maturo per la programmazione di sistema e garanzie di sicurezza. Inoltre, molti sviluppatori di Ladybird sono già familiari con questo linguaggio. Nel 2024, il linguaggio Rust non è stato approvato per l'uso in Ladybird a causa della sua paradigma di sviluppo basato sulla proprietà, che non si adatta perfettamente allo stile orientato agli oggetti del C++.

Andreas Kling ha lavorato un tempo per Nokia occupandosi dello sviluppo di KHTML, ed è stato uno degli sviluppatori di Safari in Apple. Inizialmente, il progetto Ladybird è stato creato come applicazione per il sistema operativo SerenityOS, ma nell'estate del 2024 è diventato un progetto autonomo e ha ricevuto una donazione di 1 milione di dollari. Il browser è scritto in C++ e distribuito sotto licenza BSD. Il progetto sviluppa il proprio motore LibWeb, un interprete JavaScript chiamato LibJS e librerie correlate.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster