Udviklerne af den eksperimentelle browser Ladybird har meddelt, at de har til hensigt at bruge programmeringssproget Swift som det primære sprog for deres projekt. Integrationen af Swift-kode forventes at starte til efteråret, efter udgivelsen af Swift 6 (brugen af Swift 5-grenen hæmmes af forbindelsen til den ældre version af Clang, som ikke er kompatibel med den nuværende C++-kodebase for Ladybird). Takket være muligheden for at kombinere C++-kode med Swift vil implementeringen af Swift ske gradvist uden at skulle omskrive den eksisterende kode.
Valget af Swift er baseret på en række fordele, herunder sikre metoder til hukommelsesstyring, beskyttelse mod race-tilstande, moderne syntaks og ergonomi. Den objektorienterede natur af Swift er særligt vigtig for Ladybird-teamet, da det muliggør en mere præcis modellering af web-specifikationer og interne komponenter af browseren. Udviklerne bemærker også den forbedrede støtte for Swift på ikke-Apple platforme samt den aktive indsats for at sikre kompatibilitet med C++, hvilket åbner vejen for et gradvist incitament til sproget i projektet. På trods af Swifts historiske bånd til Apple bliver sproget stadig mere uafhængigt, hvilket f.eks. fremgår af overførslen af dets repository til en separat organisation på GitHub.
Andreas Kling, grundlæggeren af Ladybird-projektet, har delt sine tanker om Rust. Ifølge Kling, selvom Rust har et imponerende økosystem, er det mindre praktisk til udvikling af langsigtede programmer med komplekse objektgrafer. Desuden karakteriserede Kling Rust-fællesskabet som "toksisk".
Vi minder om, at browseren Ladybird oprindeligt blev udviklet inden for rammerne af et projekt til at udvikle operativsystemet SerenityOS. I juni 2024, besluttede Andreas Kling, som tidligere arbejdede hos Nokia og var involveret i udviklingen af Safari, at adskille browserprojektet fra operativsystemprojektet og dedikere al sin tid til dets udvikling. I juli modtog projektet en donation på 1 million dollars og begyndte at danne den non-profit organisation Ladybird Browser Initiative.
Browseren er skrevet i C++ og distribueres under BSD-licensen. Projektet udvikler sin egen motor, LibWeb, JavaScript-fortolker LibJS, bibliotek til tekst- og 2D-grafikrendering LibGfx, motor til regulære udtryk LibRegex, XML-parser LibXML, fortolker af mellemkode WebAssembly (LibWasm), bibliotek til Unicode-håndtering LibUnicode, bibliotek til konvertering af tekstkoderinger LibTextCodec, parser til Markdown (LibMarkdown), biblioteker med kryptografiske primitive (LibCrypto, LibTLS), bibliotek til arkivhåndtering LibArchive, biblioteker til lyd- og videoafspilning (LibAudio, LibVideo) og biblioteket LibCore med et generelt sæt nyttige funktioner som tidskonvertering, input/output og behandling af MIME-typer.
I Ladybird anvendes en multiprocess-arkitektur, hvor den proces, der håndterer brugergrænsefladen, er adskilt fra processerne, der behandler webindhold, sender netværksanmodninger, dekoder billeder og håndterer cookies. Dekoderne for billeder og netværksinteraktionsbehandlere er adskilt i separate processer for at styrke isolation og sikkerhed. Hver fane bruger en separat proces til behandling af webindhold, som er isoleret fra resten af systemet. For at opbygge grænsefladen i macOS bruges AppKit, i Android det native API til grafisk brugergrænseflade, og på de andre platforme bruges Qt. De vigtigste webstandarder understøttes (browseren klarer tests i Acid3), HTTP/1.1 og HTTPS. Brugergrænsefladen er designet i klassisk stil og understøtter faner.
Kilde: opennet.ru
