Dezvoltatorii browserului experimental Ladybird au anunțat intenția de a folosi limbajul de programare Swift ca principal pentru proiectul lor. Introducerea codului scris în Swift este programată să înceapă în toamnă, după lansarea versiunii Swift 6 (utilizarea ramurii Swift 5 este problematică din cauza legăturii cu o versiune veche de Clang, incompatibilă cu baza curentă de cod Ladybird în C++). Datorită posibilității de a combina codul C++ și Swift, integrarea Swift se va face treptat, fără rescrierea codului existent.
Alegerea Swift este determinată de o serie de avantaje, inclusiv metodele sigure de gestionare a memoriei, protecția împotriva stărilor de competiție, sintaxa modernă și ergonomia. Importanța specială pentru echipa Ladybird o are natura orientată pe obiect a Swift, ceea ce permite modelarea mai precisă a specificațiilor web și componentelor interne ale browserului. Dezvoltatorii subliniază de asemenea îmbunătățirea suportului pentru Swift pe platformele non-Apple și activitatea continuă pentru compatibilitatea cu C++, ceea ce deschide calea pentru integrarea treptată a limbajului în proiect. În ciuda legăturilor istorice ale Swift cu Apple, limbajul devine din ce în ce mai independent, așa cum dovedește, de exemplu, mutarea repositoariului său într-o organizație separată pe GitHub.
Andreas Kling, fondatorul proiectului Ladybird, și-a împărtășit gândurile despre Rust. În opinia lui Kling, deși Rust are un ecosistem impresionant, acesta este mai puțin convenabil pentru dezvoltarea programelor de lungă durată cu grafuri complexe de obiecte. În plus, Kling a caracterizat comunitatea Rust ca fiind «toxică».
Reamintim că inițial browserul Ladybird s-a dezvoltat în cadrul proiectului de dezvoltare a sistemului de operare SerenityOS. În iunie 2024, Andreas Kling, care a lucrat anterior la Nokia și s-a ocupat de dezvoltarea Safari, a decis să separe proiectul browserului de proiectul sistemului de operare și să-și dedice complet timpul dezvoltării acestuia. În iulie, proiectul a primit o donație de 1 milion de dolari și a început să formeze organizația non-profit Ladybird Browser Initiative.
Browserul este scris în C++ și este distribuit sub licența BSD. Proiectul dezvoltă propriul motor LibWeb, interpretatorul JavaScript LibJS, biblioteca pentru redarea textului și graficii 2D LibGfx, motorul pentru expresii regulate LibRegex, parserul XML LibXML, interpretatorul codului intermediar WebAssembly (LibWasm), biblioteca pentru lucrul cu Unicode LibUnicode, biblioteca pentru conversia codificărilor de text LibTextCodec, parserul pentru markup Markdown (LibMarkdown), bibliotecile cu primitive criptografice (LibCrypto, LibTLS), biblioteca pentru lucrul cu arhive LibArchive, bibliotecile pentru redarea sunetului și video (LibAudio, LibVideo) și biblioteca LibCore cu un set comun de funcții utile, precum conversia timpului, input/output și procesarea tipurilor MIME.
Ladybird utilizează o arhitectură multiproces, în care procesul care se ocupă de generarea interfeței este separat de procesele care asigură procesarea conținutului web, trimiterea cererilor de rețea, decodificarea imaginilor și stocarea cookie-urilor. Gestionarii asociați cu decodificarea imaginilor și interacțiunea de rețea sunt separați în procese distincte pentru a spori izolarea și securitatea. Fiecare tab utilizează un proces separat pentru procesarea conținutului web, izolat de restul sistemului. Interfața pe macOS folosește AppKit, pe Android - API-ul nativ al platformei pentru crearea de interfețe grafice, iar pe celelalte platforme - Qt. Se susțin standardele web de bază (browserul trece testele Acid3), HTTP/1.1 și HTTPS. Interfața grafică este realizată într-un stil clasic și suportă tab-uri.
Sursa: opennet.ro
