Wie houdt al die code nog bij?

AI belooft ons al een aantal jaar nooit eerder geziene productiviteitswinst. Op vele vlakken heeft het ons dat ook al bezorgd. Maar ook voor het tijdperk van AI was er iets dat onze productiviteit enorm deed stijgen: open source software (OSS). Van besturingssystemen over webservers tot ontwikkeltools, databases en een schier eindeloze lijst aan nuttige bibliotheken. Zonder een gemeenschap van mensen die hun tijd en middelen ter beschikking stellen van anderen zou onze digitale wereld er vandaag helemaal anders - en veel armer - uitzien.

Ook voor de ontwikkeling van AI en de LLM's die velen onder ons inmiddels dagelijks gebruiken was OSS van groot belang. Om kwalitatieve output te genereren, hebben modellen enorme hoeveelheden kwalitatieve input nodig. De vrij beschikbare code van duizenden open source projecten heeft een enorme bijdrage geleverd aan de kwaliteit van de taalmodellen die we vandaag ter beschikking hebben.

Hoewel open source van onmisbaar belang was voor de ontwikkeling van onze huidige taalmodellen, blijkt de impact van AI op de open source gemeenschap niet altijd even positief. In dit artikel gaan we op zoek naar de gevaren van AI voor OSS, de kansen die het biedt, en een mogelijke weg naar toekomstig succes.

Sneller van idee naar oplossing

Het grootste voordeel van AI is dat het ons toelaat om veel sneller van een idee naar een werkende oplossing te gaan. AI-assistenten helpen bij het schrijven van code, leggen bestaande implementaties uit, sporen fouten op en stellen nieuwe functionaliteit voor. Dit laat open sourceontwikkelaars toe om functies te realiseren die vroeger noodgedwongen op de wachtlijst bleven staan, en maakt het ook voor nieuwe bijdragers eenvoudiger om hun weg te vinden in een project.

Maintainers van OSS besteden ook veel tijd aan routinewerk: afhankelijkheden bijwerken, documentatie corrigeren, bugs reproduceren, etc. AI kan een deel van die taken overnemen. Vooral in taken waarin vaste patronen voorkomen blinkt AI uit. Het team achter GraalVM heeft bijvoorbeeld met behulp van AI duizenden open sourcebibliotheken gescand en de nodige metadata toegevoegd om reflectie mogelijk te maken. Ze hebben op die manier veel tijd bespaard aan een taak die niemand graag had uitgevoerd.

Ook bij het beoordelen van code kan AI een grote rol van betekenis spelen. Door een AI-reviewer voorgestelde wijzigingen te laten controleren op mogelijke fouten, ontbrekende tests of afwijkingen van de bestaande codeconventies kan de tussenkomst van een menselijke reviewer worden uitgesteld tot het moment waarop de code daadwerkelijk klaar is om nagekeken te worden.

Meer code, meer werk

Tegenover die voordelen, staan echter ook een aantal nadelen. Omdat AI het veel eenvoudiger maakt om van een gewenste functionaliteit naar al dan niet werkende code te gaan, krijgen mensen die OSS onderhouden veel meer pull requests te verwerken. Hoewel AI de ontwikkelaars van OSS dus toelaat om zelf efficiënter nieuwe functies toe te voegen, zorgt het er ook voor dat ze meer code van anderen moeten nakijken. Hun werkdruk verhoogt op die manier, in plaats van te verlagen.

Daarnaast veranderen de verwachtingen van gebruikers. Nu meer mensen met behulp van AI hun gewenste functies aan de bestaande software kunnen toevoegen, vinden ook meer mensen dat die functies meteen deel moeten uitmaken van de officiële software. Maintainers van OSS ervaren druk om nieuwe software sneller vrij te geven, waardoor de software ofwel minder grondig getest is, ofwel in minder tijd even grondig getest moet worden. Deze veranderende cadans kan leiden tot burn-out bij ontwikkelaars van OSS, waardoor wereldwijd gebruikte projecten niet meer onderhouden dreigen te worden.

Omdat AI het zo eenvoudig maakt om een bestaande toepassing te analyseren, de belangrijkste functies in kaart te brengen en AI te vragen om een alternatief te bouwen, krijgen de oorspronkelijke ontwikkelaars van OSS meer concurrentie. Deze ontwikkelaars blijven echter nog steeds verantwoordelijk voor het onderhoud van de bestaande codebasis. Als zij hierdoor opgeven, dreigen jarenlange expertise over de structuur van een project verloren te gaan.

Hoe het beter kan

Hoe kunnen open source projecten de voordelen van AI benutten, en de nadelen die ze momenteel ervaren beperken? Dat kan op verschillende manieren.

Sommige projecten, waaronder Zig, NetBSD en Gentoo, verbieden het gebruik van AI. Dit beperkt uiteraard de nadelen, maar laat niet toe om van de voordelen te genieten. Waardevoller lijkt mij om per project te bekijken waar AI echt iets oplevert, en hoe de extra belasting beheersbaar blijft.

Vraag om duidelijke en controleerbare bijdragen. Laat indieners uitleggen welk probleem ze willen oplossen, waarom de wijziging nodig is en hoe ze die hebben getest. Een kleine, goed onderbouwde bijdrage is vaak waardevoller dan een grote hoeveelheid automatisch gegenereerde code.

Bescherm de tijd van maintainers. Niet elke bijdrage vereist een onmiddellijke reactie. Duidelijke richtlijnen, geautomatiseerde triage en realistische verwachtingen helpen voorkomen dat maintainers voortdurend beschikbaar moeten zijn.

Gebruik AI ook om bestaande software te verbeteren. De technologie kan helpen om code te vereenvoudigen, tests uit te breiden, documentatie bij te werken en verouderde afhankelijkheden aan te pakken. Dat werk levert op lange termijn mogelijk meer op dan voortdurend nieuwe functies toevoegen.

AI kan open source sterker maken, maar alleen als je de mensen erachter niet uit het oog verliest. Software wordt niet beter omdat er meer code bijkomt. Het wordt beter als er mensen zijn die het begrijpen, onderhouden en verantwoordelijkheid voor nemen. Daar blijft open source, met of zonder AI op draaien.

Met dank aan Glenn voor het schrijven van dit artikel.

More Flock Talks

Read all Flock Talks
Wie houdt al die code nog bij?