Die Entwickler des experimentellen Browsers Ladybird haben angekündigt, die Programmiersprache Swift als Hauptsprache für ihr Projekt zu verwenden. Die Integration von Swift-Code soll im Herbst beginnen, nach der Veröffentlichung von Swift 6 (die Verwendung des Swift 5-Zweigs wird durch die Bindung an eine alte Clang-Version behindert, die mit der aktuellen C++-Codebasis von Ladybird nicht kompatibel ist). Dank der Möglichkeit, C++- und Swift-Code zu kombinieren, wird die Einführung von Swift schrittweise erfolgen, ohne dass der bestehende Code umgeschrieben werden muss.
Die Wahl von Swift basiert auf mehreren Vorteilen, darunter sichere Speichermethoden, Schutz vor Wettlaufbedingungen, moderne Syntax und Ergonomie. Für das Ladybird-Team ist die objektorientierte Natur von Swift von besonderer Bedeutung, da sie es ermöglicht, Web-Spezifikationen und interne Komponenten des Browsers genauer zu modellieren. Die Entwickler heben auch die verbesserte Unterstützung von Swift für Nicht-Apple-Plattformen und die aktive Arbeit an der Kompatibilität mit C++ hervor, was den Weg für eine schrittweise Einführung der Sprache im Projekt eröffnet. Trotz der historischen Verbindungen von Swift zu Apple wird die Sprache zunehmend unabhängiger, was beispielsweise durch die Übertragung ihres Repositories in eine eigene Organisation auf GitHub belegt wird.
Andreas Kling, der Gründer des Projekts Ladybird, teilte seine Gedanken zu Rust. Seiner Meinung nach ist Rust zwar mit einem beeindruckenden Ökosystem ausgestattet, aber weniger geeignet für die Entwicklung langlebiger Programme mit komplexen Objektgraphen. Darüber hinaus charakterisierte Kling die Rust-Community als "toxisch".
Erinnern wir uns daran, dass der Browser Ladybird ursprünglich im Rahmen eines Projekts zur Entwicklung des Betriebssystems SerenityOS entwickelt wurde. Im Juni 2024 entschied Andreas Kling, der früher bei Nokia arbeitete und an der Entwicklung von Safari beteiligt war, das Browser-Projekt von dem Betriebssystemprojekt zu trennen und seine gesamte Zeit der Entwicklung zu widmen. Im Juli erhielt das Projekt eine Spende von 1 Million Dollar und begann mit der Gründung der gemeinnützigen Organisation Ladybird Browser Initiative.
Der Browser ist in C++ geschrieben und wird unter der BSD-Lizenz vertrieben. Das Projekt entwickelt seine eigene Engine LibWeb, den JavaScript-Interpreter LibJS, eine Text- und 2D-Grafikbibliothek LibGfx, die Engine für reguläre Ausdrücke LibRegex, den XML-Parser LibXML, einen Interpreter für Zwischencode WebAssembly (LibWasm), die Unicode-Bibliothek LibUnicode, die Bibliothek zur Umwandlung von Textkodierungen LibTextCodec, einen Parser für Markdown-Markup (LibMarkdown), Bibliotheken mit kryptografischen Primitiven (LibCrypto, LibTLS), eine Bibliothek zur Arbeit mit Archiven LibArchive, Bibliotheken zur Wiedergabe von Audio und Video (LibAudio, LibVideo) und die Bibliothek LibCore mit einer allgemeinen Sammlung nützlicher Funktionen, wie Zeitumwandlung, Ein-/Ausgabe und Verarbeitung von MIME-Typen.
Ladybird verwendet eine Multi-Prozess-Architektur, wobei der für die Benutzeroberfläche zuständige Prozess von den Prozessen getrennt ist, die für die Verarbeitung von Web-Inhalten, das Senden von Netzwerk-Anfragen, das Decodieren von Bildern und das Speichern von Cookies verantwortlich sind. Die für das Decodieren von Bildern und die Netzwerkinteraktion zuständigen Handler sind in separate Prozesse ausgelagert, um die Isolation und Sicherheit zu erhöhen. Für jeden Tab wird ein separater Prozess zur Verarbeitung von Web-Inhalten verwendet, der von dem Rest des Systems isoliert ist. Für die Benutzeroberfläche unter macOS wird AppKit verwendet, unter Android die plattformeigene API zur Erstellung von grafischen Benutzeroberflächen, und auf anderen Plattformen Qt. Die grundlegenden Web-Standards werden unterstützt (der Browser besteht die Acid3-Tests), HTTP/1.1 und HTTPS. Die grafische Benutzeroberfläche ist im klassischen Stil gehalten und unterstützt Tabs.
Quelle: opennet.ru
