column

Software maakt software

Soms voel ik mij een machteloze proleet als ik spreek met een informaticus. Maar aan hun rijk komt mogelijk een einde.

Op de redactie wou ik onze wekelijkse marktenchat voorbereiden, maar technisch liep iets mis. 'Ik heb eens zitten kijken in de API calls voor de marktenchat', zei een opgewekte IT'er mij. 'Hij lijkt erop dat je de feed gaat moeten aanpassen in het redactiesysteem.' Nu weet ik dat API staat voor 'application program interface', maar die kennis hielp mij geen stap verder.

Het was dan ook met een sardonisch genoegen dat ik wat later op de gespecialiseerde blog SiliconANGLE las over 'machine programming', een onderzoeksprogramma bij onder meer het Amerikaanse chipbedrijf Intel.

Het einddoel is dat iedereen ooit software kan maken. Stel dat ik een chatapplicatie wil, dan leg ik dat in gewoon Nederlands, aangevuld met wat tekeningen en gebaren, uit aan een artificieel intelligent (AI) programma. Dat maakt dan die code voor mij.

Gelijkenissen

Dat doel komt wat dichterbij. Intel en onderzoekers van het MIT en Georgia Tech maakten een belangrijke stap voorwaarts bekend in een paper. Ze ontwikkelden een systeem, Machine Inferred Code Similarity (MISIM), dat computerprogramma's vergelijkt om na te gaan of ze gelijkaardige taken vervullen. Het systeem analyseerde 45.780 programma's en is 40,6 keer preciezer in zijn diagnose dan de concurrentie.

In de toekomst die Intel ziet, worden programmeurs 'software creators' die zelf geen code meer schrijven.

 MISIM is beter dankzij iets dat 'contextbewuste semantische structuur' wordt genoemd. Dat laat het programma toe code te analyseren en te achterhalen wat de code doet.

Voorlopig moeten programmeurs niet voor hun baan vrezen. Intel gaat MISIM vooral gebruiken om hen in realtime raad te geven. Het kan de coders wijzen op bestaande code die de taak beter doet, of waarschuwen voor bugs.

Drie pijlers

Voor de directeur van het onderzoekersteam van Intel, Justin Gottschlich, is de functie van AI als hulpje voor de menselijke programmeur maar een tussenstap. In 2018 publiceerde hij samen met andere onderzoekers de paper The Three Pillars of Machine Programming. In een interview met de Wharton School van de University of Pennsylvania legt hij de teneur van de paper uit. Daarbij is niet langer sprake van een programmeur zoals we die nu kennen. Hij heeft het over 'software creators' en die gaan uiteindelijk zelf helemaal geen code meer moeten schrijven.

Een eerste pijler van 'machine programming' interpreteert wat de software-creator wil. De tweede pijler creëert de nodige algoritmes en datastructuren. De derde pijler kijkt naar het ecosysteem van hardware en software waarin moet worden gewerkt. Is dat een iPhone met Siri? Of is het een Tesla? De derde pijler optimaliseert in die context wat de tweede pijler deed.

Proleten

Voor Intel en heel wat andere techbedrijven zou deze ontwikkeling zeer welgekomen zijn. Er is een nijpend tekort aan programmeurs. Er is steeds meer verschillende hardware waarop allerlei software zo goed mogelijk moet draaien. De grote droom is dan uiteraard die software ook door niet-programmeurs te laten maken. Eventueel door niet-programmeurs in streken waar de lonen lager zijn.

Uiteraard gaan er nog superprogrammeurs en computerwetenschappers nodig zijn, en creatieve mensen met goede ideeën voor nieuwe software. Maar heel wat gewone 'coders' dreigen in deze toekomst proleten te worden, tenzij ze zich heruitvinden.

Lees verder