U: “Kun je deze hele codebase omzetten naar Go?” AI: “Ik ga ermee aan de slag. Ik ben zo terug met de eerste iteratie…”
Migreren van de ene programmeertaal naar de andere was jarenlang een process van bloed, zweet en JIRA-tickets. Eelt op je vingers van het programmeren. En als je het dan oplevert dan zegt de klant of product owner: “Het ziet er nog exact hetzelfde uit! Zijn jullie hier nu een half jaar mee bezig geweest?” Daarom was en is het ook iets waar niemand graag zijn vingers aan brand en waarom het ook niet vaak gebeurt. Maar met de opkomst van LLMs wordt dit proces binnenkort relatief makkelijk.
Een AI herschrijft een Python-codebase naar idiomatisch Go. De developer kijkt mee, en finetunet waar nodig.
Hoe werkt dat?
De AI begrijpt de semantiek van de code. Ze leest niet alleen de syntax, maar begrijpt ook wat de code doet. Ze kan de logica volgen, de afhankelijkheden herkennen en zelfs de context begrijpen waarin de code draait.
Het resultaat? De AI kan de code herschrijven in een andere taal, met behoud van de oorspronkelijke functionaliteit. En dat is niet alleen een kwestie van syntactische vertaling. Het gaat om het begrijpen van de onderliggende principes en het toepassen daarvan in de nieuwe taal.
Waarom denk je dat dit zo makkelijk kan?
De migratie van een code-base is een perfect voorbeeld van een taak die relatief makkelijk geverifieerd kan worden. Je hebt immers al testen die moeten slagen voordat je wijzigingen doorvoert. Deze testen draai je vóór en na de migratie. Als de migratie niet aan alle testcases voldoet, gaat de AI weer terug naar de tekentafel voor een volgende iteratie.
Vergelijk dit eens met hoe Deep Blue al in 1997 voor het eerst Kasparov versloeg in het duidelijk afgebakend spel schaken: strak omlijnde regels waarin AI uitblonk. Daarna volgde AlphaGo: complexer, meer vrijheid, maar nog steeds goed gedefinieerde grenzen. Ook hier versloeg AI uiteindelijk de mens. Code-base migraties bevinden zich op hetzelfde spectrum: helder afgebakend, makkelijk verifieerbaar, en daarom ideaal om sneller en beter door AI uit te laten voeren dan door menselijke developers.
“Code-base migraties zijn een helder afgebakend, makkelijk verifieerbaar domein en daarmee een perfecte use-case voor AI.”
Van schaak naar codebases: AI presteert steeds beter in verifieerbare domeinen.
Wat betekent dit voor developers?
Het betekent dat je niet langer vastzit aan de taal waarin je begonnen bent. Je kunt kiezen voor de taal die het beste past bij je huidige behoeften, zonder bang te zijn voor de migratiekosten of de tijd die het kost om alles opnieuw te schrijven.
Waarom is dit game changing?
Omdat taaltransitie geen strategisch obstakel meer hoeft te zijn. Vroeger betekende het kiezen van de “verkeerde” taal een dure vergissing. Nu kies je gewoon opnieuw. Je denkt in abstracties en laat AI de vertaalslag maken naar de juiste taal, afhankelijk van de use-case, schaalbaarheid of teamvoorkeur.
Is dit dan het einde van specialisatie?
Integendeel. Het is het begin van hogere abstractie in softwareontwikkeling. Developers worden componisten van systemen, die de tools kiezen die het beste passen, zonder vast te zitten aan eerdere keuzes. AI neemt de syntactische vertaalslag over, jij behoudt de controle over semantiek en architectuur.
Wat vroeger een project van een half jaar was, is nu een iteratief proces van chatten, reviewen en refactoren. Geen dure rewrite-trajecten meer. Geen angst voor legacy. Gewoon: “Kun je dit omzetten naar…”, en je AI doet het.
“Migratie van code-bases wordt een standaard proces, grotendeels uitgevoerd door AI.”
Heb jij al AI gebruikt bij het migreren van code-bases?
Heb jij al experimenten gedaan met AI voor het migreren van code? Misschien heb je al kleine modules laten omzetten of overweeg je een grotere migratie. Of zit je nog in de verkenningsfase en vraag je je af of dit echt kan werken voor jouw specifieke codebase. Ik ben benieuwd naar jouw ervaringen met AI-gestuurde code transities. Deel gerust je successen, uitdagingen of vragen.