De opensource browserengine Ladybird herschrijft een deel van zijn codebase met behulp van AI in Rust. Vooralsnog is het grootste gedeelte van de engine in C++ geschreven. Volgens de oprichter is Rust in sommige gevallen beter omdat het een veiligere programmeertaal is.
In een blogpost licht oprichter Andreas Kling toe dat er al langer gekeken werd naar een overstap van programmeertaal. Hij stelt dat de relatief jonge programmeertaal tot voor kort nog niet goed genoeg was voor object-oriented programming, een programmeerstijl waarbij elementen gebundeld worden in objecten. Inmiddels voldoet Rust volgens hem aan de eisen om voor Ladybird gebruikt te worden.
Kling gebruikte naar eigen zeggen Claude Code en Codex om delen van de engine te vertalen. Specifiek werd de JavaScript-engine, waaronder de parser, AST en bytecodegenerator van C++ naar Rust vertaald. Naar eigen zeggen kon hij met behulp van AI binnen twee weken 25.000 regels code vertalen. Er zou na het compilen geen enkel verschil in de output van de nieuwe en oude code zijn. Ook zou er geen prestatieverlies zijn.
De ontwikkelaar erkent dat zijn code eruitziet als 'vertaalde C++-code omdat het dat is', in tegenstelling tot code die native in Rust is geschreven. Later moet er een hoop code worden opgeschoond. Het is overigens niet het plan om de volledige codebase naar Rust te vertalen. Het opensourceproject blijft C++ gebruiken waar dat mogelijk is, maar gaat andere subsystemen naar Rust porten als dat een voordeel heeft.
Memory-safe programmeertaal
Rust staat bekend als een memory-safe programmeertaal. Dit verwijst naar de manier waarop de programmeertaal is opgebouwd, waarbij er fundamenteel rekening gehouden wordt met het geheugengebruik van software. Programma's in Rust zijn in principe beter beveiligd tegen het onterecht lezen van of schrijven naar het geheugen.
In 2024 vertelde Kling in een interview met Tweakers dat de keuze voor C++ oorspronkelijk niet bewust was. Hij gebruikte de volgens hem memory-unsafe-programmeertaal omdat hij er al ervaring mee had. Hij zei toen: "C++ heeft geen vangrails. Je kunt het vertellen om iets te doen wat het niet zou moeten doen en dan doet de taal dat gewoon. Modernere talen (zoals Rust, Swift en C#, red.) maken dit moeilijker."
Ladybird als tegenwicht aan Apple WebKit, Google Chromium en Mozilla Gecko
Ladybird is een opensourceproject dat voortkwam uit Klings hobbyproject SerenityOS. De browserengine moet tegenwicht bieden aan de dominantie van de drie grootste engines, Apple WebKit, Google Chromium en Mozilla Gecko. Dat zijn in de praktijk de enige massaal gebruikte browserengines.
Het doel is om in de zomer van 2026 een eerste openbare alfa te publiceren, zo vertelde Kling in een vervolginterview. Ook dan zal de engine nog niet voor iedereen zijn. "Het wordt een piece of shit. De gemiddelde gebruiker gaat de eerste versie verschrikkelijk vinden." Volgens Kling is de alfabuild bedoeld voor 'techmasochisten' en voor mensen die de browserengine puur uit technologische interesse willen testen en proberen, niet voor de gemiddelde gebruiker.