Ein Blog

Vielleicht habt ihr ja schonmal von Ladybird gehört. Das ist der Versuch eines ehemaligen WebKit-Engineers, eine weitere, komplett unabhängige Browser-Engine neben Gecko, Blink und WebKit aufzubauen und etwas mehr Diversität zu schaffen. Die Sponsoren können sich sehen lassen.

Ladybird ist aktuell zum Großteil in C++ geschrieben. Das wollten sie ändern und auf eine sichere Sprache wechseln. Zur überraschung vieler wurde Swift und nicht Rust gewählt. Die Wahl kann ich verstehen, denn Swift bietet built-in Support für C++-Interop (wofür Google eine eigene Sprache baut) und hat mittlerweile auch Ownership & Borrowing, analog zu Rust. Man kommt in Swift mittlerweile auch ohne GC aus. Als Grund nannten sie damals auch, dass die DOM-Apis im Browser allesamt eher Objektorientiert sind und das in C++/Swift besser abbildbar ist, als in Rust, wo sehr oft auf Immutability gesetzt wird. Auch ein großer Faktor wird gewesen sein, dass der Owner früher bei Apple war.

Sagten wir, wir machen Swift und nicht C++? Nein, doch nicht. Nur C++.

Und es kommt doch noch anders: Ladybird adopts Rust. tldr: Andreas Kling hat mit KI die JavaScript-Engine von C++ nach Rust portiert und ist jetzt überzeugt, dass es für den Rest des Browsers funktioniert.

Schade, dass es nicht bei Swift geblieben ist, ich finde die Sprache sehr unterschätzt.