I componenti del browser Ladybird sono stati iniziati a essere riscritti in Rust con l'aiuto dell'IA.

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

Per accelerare il porting, sono stati coinvolti assistenti AI come Claude Code e OpenAI Codex, che hanno permesso di riscrivere il codice in due settimane. La traduzione è stata effettuata 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 specificare i requisiti per il codice risultante in Rust. Dopo aver ricevuto il codice, vari modelli AI hanno eseguito una revisione del risultato e un'analisi del codice per trovare errori e soluzioni dubbie.

Alla fine, la versione del motore riscritta in Rust ha superato con successo tutti i 52898 test di compatibilità con ECMAScript dal set test262 e 12461 testi regressivi del progetto Ladybird. La versione in Rust ha mostrato una completa corrispondenza tra l'AST generato e il bytecode con la versione in C++, senza regressioni finora riscontrate. Inoltre, nei test JavaScript non è stata riscontrata alcuna diminuzione delle prestazioni. Inoltre, la completa corrispondenza ha dimostrato i risultati dei test comparativi sul trattamento dei siti utilizzando le versioni di 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 attualmente in C++. Le decisioni su quali sottosistemi saranno riscritti in Rust saranno prese dal team di sviluppo principale. Il nuovo codice in Rust coesisterà con il codice esistente in C++ attraverso livelli di interoperabilità chiaramente definiti.

È notevole che nel 2024 gli sviluppatori di Ladybird abbiano deciso di utilizzare il linguaggio di programmazione Swift, ma abbiano incontrato problemi di interoperabilità con il codice C++ e un supporto limitato per piattaforme diverse da quelle di Apple. Riguardo a Rust, questo linguaggio presenta un ecosistema più maturo per la programmazione di sistemi e garanzie di sicurezza. Inoltre, tra gli sviluppatori di Ladybird ci sono molti membri familiarizzati con questo linguaggio. Nel 2024, il linguaggio Rust non è stato approvato per l'uso in Ladybird a causa della sua paradossale strategia di sviluppo basata sulla proprietà, che non si integra bene con lo stile orientato agli oggetti del C++.

Andreas Kling ha lavorato in passato in Nokia e ha contribuito allo sviluppo di KHTML, per poi diventare uno degli sviluppatori di Safari presso Apple. Originariamente, il progetto Ladybird è stato creato come un'applicazione per il sistema operativo SerenityOS, ma nell'estate del 2024 è stato separato in 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 include lo sviluppo di un motore proprietario, LibWeb, dell'interprete JavaScript LibJS e di librerie correlate.

Fonte: opennet.ru

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