De hedendaagse internetgebruiker heeft de keuze uit tientallen welbekende browsers, maar onder de motorkap zijn verreweg de meeste daarvan gebaseerd op een van de drie grote engines: Googles Chromium, Apples WebKit en Mozilla's Gecko. De Zweedse ontwikkelaar Andreas Kling werkt aan een alternatief: de van de grond af gebouwde browser Ladybird met een eigen opensource browserengine. In een interview deelt hij zijn plannen voor het jonge project in prealfastadium, dat ooit tegenwicht moet gaan bieden aan de grote drie.
Diep persoonlijk van oorsprong
De naam Ladybird, lieveheersbeestje
De naam van de browser heeft net als die van het besturingssysteem alles te maken met Kling. Ladybird is vernoemd naar zijn Hongaarse vrouw Katalin. Haar koosnaam is 'Katica', wat Hongaars is voor 'lieveheersbeestje'.
Ladybird is een browser die in vele opzichten moet verschillen van alle grote browsers in het huidige internetlandschap. De oorsprong van het project ligt in 2018. Kling werkte aan een eigen besturingssysteem, SerenityOS, een modern, op Unix gebaseerd OS met een visuele stijl, vergelijkbaar met een retrobesturingssysteem uit de jaren negentig. SerenityOS was volgens de Zweed een manier om met zijn drugsverslaving om te gaan en hem rust te bieden, vandaar de Engelse naam voor sereniteit. Maar het hobbyproject groeide uit tot iets serieus en in 2021 ging hij fulltime aan het OS werken.
Bij dat besturingssysteem hoorde een ander hobbyproject: de opensourcebrowser Ladybird. Sinds de zomer van 2024 is er daarentegen niet meer van een hobbyproject te spreken. Kling forkte de browser en richtte de stichting Ladybird Browser Initiative op. Die organisatie ontving een miljoen dollar als donatie van Chris Wanstrath, oud-ceo en medeoprichter van GitHub, en ook bestuurslid en medeoprichter van de stichting. Sindsdien zit er niet alleen een groepje van zes toegewijde ontwikkelaars, maar ook een smak geld achter het project.
Tegenwicht tegen Google en Apple
Dat project heeft een duidelijke missie, aldus Kling: "Het doel is om diversiteit aan het browserecosysteem toe te voegen door een gratis en opensourcebrowser voor een groot publiek te maken." Daaraan ligt een concrete tegenbeweging tegen de grote browserengines ten grondslag, want volgens hem is praktisch iedere gangbare browser uit dezelfde bouwstenen opgebouwd. Apples WebKit-engine is bijvoorbeeld een fork van Khtml. Google Chromiums Blink is weer een fork van WebKit. Daarmee zijn praktisch alle grote browsers, waaronder Safari, Chrome, Edge, Opera, Brave en Vivaldi, verre familie van elkaar. Alleen Gecko staat daar relatief los van.
Wat doet een browserengine?
De browserengine is het onderliggende gedeelte van de webbrowser dat verantwoordelijk is voor het vertalen van informatie van internet in een visueel element. In Klings woorden: "Browserengines zijn zeer gecompliceerd. In een notendop: de software vertaalt HTML en CSS, rendert dat naar een bitmap en toont het resultaat op het scherm." Volgens hem staan browserengines verder vrij los van het onderliggende systeem. "Het grootste gedeelte van een engine komt nooit in aanraking met het platform. Er zijn slechts een aantal interactiepunten tussen de engine, de pc en het besturingssyteem."
Kling wil naar eigen zeggen een stap terug doen en zijn engine zonder alle 'door de jaren heen ingebakken en vaak onnodige functies' opbouwen. Hij neemt daarvoor de huidige engines als voorbeeld, maar negeert de functies en eigenschappen waar de meeste gebruikers geen baat bij zullen hebben. Ladybird moet volgens de maker meer als een videogame ontwikkeld worden, wat betekent dat vooral naar de toekomst gekeken wordt. "We maken de engine niet voor oudere hardware. Een twintig jaar oude computer, daar houden we geen rekening mee. Misschien laten we toestellen met 1GB ram, een heel klein scherm of met legacybesturingssystemen van acht jaar oud ook achterwege."
Met andere woorden, hij neemt aan dat het geavanceerde ontwikkelaarssysteem dat hij nu gebruikt, over een paar jaar een 'gewoon' systeem is van de gemiddelde gebruiker. Dat zou volgens hem in contrast staan met de grote enginemakers, die hun browserfundament ook voor oude toestellen en nichesystemen willen ontwikkelen. Dat staat in het verlengde van het onderliggende doel van Google en Apple: respectievelijk een 'advertentieplatform onderhouden en hardware verkopen'.
De 'goede buur'-filosofie
Dat wil niet zeggen dat hij niets van de grote drie heeft geleerd. Sterker nog, Kling werkte zeven jaar bij Apple aan WebKit, specifiek aan de impact van de browserengine op de accuduur van een toestel, iets wat hij een 'ondergewaardeerde prestatiemaatstaf' noemt.
Je zou wellicht denken dat optimaliseren voor accuduur, ofwel het zo efficiënt en zuinig mogelijk maken van een applicatie, alleen van toepassing is op software voor draagbare apparaten. Maar Kling werd duidelijk door deze ontwerpfilosofie beïnvloed, ook wat de desktopversie van Ladybird betreft. "Ik vind dat software altijd een 'goede buur' moet zijn; applicaties moeten beleefd zijn naar elkaar en het gedeelde systeem. Je wil niet dat een programma onnodig alle middelen opeist."
"Je wil niet dat een programma onnodig alle middelen opeist."
Dit is direct ook een uitdaging voor hem als onafhankelijke ontwikkelaar. Apple heeft als hard- en softwaremaker heel veel mogelijkheden om die losse systemen met elkaar te laten samenwerken, Kling niet. Hij stelt: "Besturingssystemen zouden meer moeten doen om te duiden welke middelen beschikbaar zijn. Er zijn wel api's die dat mogelijk maken, maar de informatie die daaruit voortkomt, is vaak heel 'korrelig' en onduidelijk."
Onveilig fundament
Dat is overigens lang niet de enige uitdaging die hij moet zien te trotseren. Zo is de browserengine grotendeels in de relatief onveilige programmeertaal C++ geschreven. Volgens de GitHub-pagina van Ladybird gaat het om zo'n 85 procent van de volledige codebasis. Dat was niet zozeer een bewuste keuze, geeft Kling toe. "Ik begon met SerenityOS en Ladybird als een hobby, dus koos ik gemakshalve C++; die taal beheerste ik al."
Het probleem is dat C++ een memory unsafe-programmeertaal is, wat wil zeggen dat de taal fundamenteel kwetsbaar is voor bugs en aanvallen die met geheugentoegang te maken hebben. Of zoals Kling het beschrijft: "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.""C++ heeft geen vangrails."
Software vertalen in een volledig andere programmeertaal is echter niet eenvoudig. Het team achter Ladybird is nog bezig met het zoeken naar een geschikte programmeertaal en wil dan in eerste instantie stapsgewijs de kwetsbare onderdelen van de engine vertalen die bijvoorbeeld in aanraking komen met untrusted netwerken.
Project in kinderschoenen
Hij benadrukt dat het project echter nog in de kinderschoenen staat en dat de stichting voorlopig bezig is met het introduceren van basisfuncties in de browser en onderliggende engine. "We zullen nooit het budget van Google hebben en moeten onze strategie daarop aanpassen." Hij typeert Google dan ook als een bedrijf dat heel progressief nieuwe functies in de engine implementeert en ontwikkelaars daar snel mee laat experimenteren. "Wij doen het rustiger aan en kijken kritisch welke functies we wel en niet nodig hebben."
Daar komt ook nog een heel praktische beperking bij kijken: de grootte en kennis van het team. Het welbekende probleem van opensourceprojecten is namelijk dat er niet op grote schaal werknemers ingehuurd kunnen worden. Bij de aankondiging van Ladybird als losstaande browser werden dan ook macOS en Linux als doelplatforms genoemd, terwijl het dominante Windows achterwege bleef. Daarover zegt Kling: "Ik ken Windows niet goed genoeg om het project effectief te porten naar dat besturingssysteem. We hebben geen werknemers die dat kunnen." Hij belooft dat de browser op den duur uitkomt voor Windows, maar dat het team zich vooralsnog op basisfuncties wil richten. "Porten naar Windows kan op ieder moment in het proces."
Over de toekomst gesproken, het Ladybird Browser Initiative heeft, inclusief een recente donatie van 200.000 dollar van de FUTO-organisatie, genoeg financiële middelen voor nog ten minste 1,5 jaar. Kling breidt zijn team naar eigen zeggen met die overlevingstermijn in het achterhoofd uit en groeit niet zo 'snel en explosief als een start-up dat zou doen'. Volgens de huidige planning moet van Ladybird ergens in 2026 een alfaversie uitkomen, met een bètarelease in 2027. De volledige releaseversie moet in 2028 uitkomen.