De cloud - het online domein van onze digitale wereld - wordt met de dag groter en belangrijker. Programmeurs en ontwikkelaars in staat stellen met die cloud te werken wordt daarom ook steeds belangrijker. Maar alhoewel programmeren in de cloud al zo'n 15 jaar bestaat, is het relatief ontoegankelijk gebleven. Asterios Katsifodimos wil daar verandering in brengen: in de komende vijf jaar gaat hij met zijn team de ontwikkeling van schaalbare en consistente cloudtoepassingen democratiseren. Voor deze inspanning heeft hij een prestigieuze Vidi-subsidie van NWO ontvangen.

Er zijn verschillende redenen waarom het maken en onderhouden van cloud-applicaties zo moeilijk is. Allereerst is er de complexiteit. Als softwareontwikkelaar moet je verschillende specialismen combineren, zoals databasesystemen, gedistribueerde systemen, en natuurlijk programmeren. Dan is er de toenemende hoeveelheid moeilijkheden die wordt gegenereerd door steeds veranderende abstracties die nodig zijn om gebruik te maken van gevestigde cloud providers - zij dicteren de regels.

Combineer deze twee hindernissen, en het resultaat is een gebied van de computerwetenschap dat slechts een select aantal programmeurs stevig in de vingers heeft. "Alleen bedrijven met enorme budgetten, zoals Amazon of Meta, zijn in staat deze programmeurs aan te trekken," vat Katsifodimos samen. "Het resultaat is dat kleine bedrijven niet in staat zijn om schaalbare en consistente cloud systemen of applicaties te ontwikkelen. Ik wil het domein van cloud programmering democratiseren, en het voor iedereen toegankelijk maken met eenvoudig te gebruiken, open source software."

We leven nog in de steentijd van het programmeren voor de cloud. Democratisering van het gebruik van schaalbare en consistente cloud-applicaties kan ons 'terug' naar de 21e eeuw brengen.

De oorsprong van beide belangrijkste hindernissen in het programmeren voor de cloud is fouttolerantie: wanneer je code schrijft voor de cloud, schrijf je code voor talloze verschillende machines, die onder verschillende omstandigheden op totaal verschillende geografische locaties draaien. Dus kun je op elk moment verwachten dat een of meer van deze machines uitvalt, terwijl de software desondanks door moet draaien. "Als de code op je laptop faalt, kun je hem gewoon rebooten en opnieuw beginnen. Maar een cloud-applicatie kun je niet zomaar rebooten, dus je code moet met die storingen omgaan."

"Eerlijk gezegd is dat een enorm interessante uitdaging voor een software engineer als ik," geeft Katsifodimos toe, "als je kijkt naar gemiddelde, state-of-the-art code voor cloud applicaties, merkt een getraind oog al snel op dat 90% van de code bestaat uit cloud-infrastructuur failure management. Met andere woorden, slechts 10% van de code doet iets echt nuttigs. Mijn ambitie is om dat 180 graden om te draaien. Zodat ontwikkelaars in de toekomst nog maar 10% van hun code hoeven te wijden aan cloud-infrastructuur, en de rest kunnen overlaten aan het maken van hun product."

Een veelbelovende manier om dit doel te bereiken is het maken van een compiler - een programma dat code die begrijpelijk is voor mensen vertaalt in code die bruikbaar is voor computers - die automatisch omgaat met het parallelliseren en fouttolerantie van een cloud-applicatie. Katsifodimos: "Ik hoop het mogelijk te maken dat programmeren voor de cloud aanvoelt als programmeren voor een laptop - alleen duizenden malen sneller en schaalbaarder."

"We leven nog in de steentijd van het programmeren voor de cloud. Democratisering van het gebruik van schaalbare en consistente cloud-applicaties kan ons 'terug' naar de 21e eeuw brengen." besluit Katsifodimos.

/* */