Za nastavak razvoja preglednika Ladybird odlučeno je koristiti jezik Swift

Programeri eksperimentalnog preglednika Ladybird objavili su svoju namjeru da koriste programski jezik Swift kao glavni jezik za svoj projekt. Uključivanje u Swift kod planirano je započeti na jesen, nakon izlaska Swift 6 (upotreba Swift 5 grane je onemogućena povezivanjem na staru verziju Clanga, koja je nekompatibilna s trenutnom Ladybird bazom koda u C++) . Zahvaljujući mogućnosti kombiniranja koda u C++ i Swiftu, Swift će se implementirati postupno bez ponovnog pisanja postojećeg koda.

Swift je odabran zbog brojnih prednosti, uključujući postupke koji štite memoriju, zaštitu od uvjeta utrke, modernu sintaksu i ergonomiju. Od posebnog značaja za Ladybird tim je Swiftova objektno orijentirana priroda, koja mu omogućuje točnije modeliranje web specifikacija i internih dijelova preglednika. Programeri također primjećuju poboljšanje podrške za Swift za platforme koje nisu Appleove i aktivan rad na kompatibilnosti sa C++, što otvara put za postupno uvođenje jezika u projekt. Unatoč povijesnim vezama Swifta s Appleom, jezik postaje sve neovisniji, što se dokazuje, na primjer, premještanjem njegovog repozitorija u zasebnu organizaciju na GitHubu.

Andreas Kling, osnivač projekta Ladybird, podijelio je svoje mišljenje o Rustu. Prema Klingu, iako Rust ima impresivan ekosustav, manje je prikladan za razvoj dugotrajnih programa s velikim, složenim objektnim grafovima. Dodatno, Kling je Rust zajednicu opisao kao "otrovnu".

Podsjetimo, preglednik Ladybird inicijalno je razvijen u sklopu projekta razvoja operativnog sustava SerenityOS. U lipnju 2024. Andreas Kling, koji je nekoć radio u Nokiji i razvijao Safari, odlučio je odvojiti projekt preglednika od projekta operativnog sustava i u potpunosti posvetiti svoje vrijeme njegovom razvoju. U srpnju je projekt primio donaciju od milijun dolara i započeo s formiranjem neprofitne inicijative Ladybird Browser Initiative.

Preglednik je napisan u C++ i distribuiran pod BSD licencom. Projekt razvija vlastiti motor LibWeb, JavaScript interpreter LibJS, biblioteku za renderiranje teksta i 2D grafiku LibGfx, mehanizam regularnih izraza LibRegex, XML parser LibXML, intermedijarni interpreter koda WebAssembly (LibWasm), biblioteku za rad s Unicode LibUnicode, biblioteku za pretvaranje teksta LibTextCodec kodiranja, Markdown parser (LibMarkdown), biblioteke s kriptografskim primitivima (LibCrypto, LibTLS), biblioteka za rad s arhivama LibArchive, biblioteke za reprodukciju zvuka i videa (LibAudio, LibVideo) i biblioteka LibCore sa zajedničkim skupom korisnih funkcija, kao što je pretvorba vremena, obrada I/O i MIME tipa.

Ladybird koristi višeprocesnu arhitekturu, u kojoj je proces koji stvara sučelje odvojen od procesa koji obrađuju web sadržaj, šalju zahtjeve preko mreže, dekodiraju slike i pohranjuju kolačiće. Rukovatelji koji se odnose na dekodiranje slike i mrežnu komunikaciju odvojeni su u zasebne procese kako bi se poboljšala izolacija i sigurnost. Svaka kartica koristi zaseban proces obrade web sadržaja, izoliran od ostatka sustava. Za izradu sučelja, macOS koristi AppKit, Android koristi izvorni API za stvaranje GUI-ja za ovu platformu, a Qt se koristi na drugim platformama. Podržani su glavni web standardi (preglednik prolazi Acid3 testove), HTTP/1.1 i HTTPS. Grafičko sučelje dizajnirano je u klasičnom stilu i podržava kartice.

Izvor: opennet.ru

Dodajte komentar