De nieuwste Joomla extensies hebben we ontwikkeld met behulp van Artificial Intelligence. Met de nadruk op hulp.
In de wereld van software ontwikkelen draait het allang niet meer alleen om "werkt het?". Programmeren is niet meer alleen code kloppen. Er komt echt steeds meer bij kijken om een simpel programma te laten werken op de plek waar het gebruikt moet worden. Software ontwikkelaars zijn weer echte engineers. Ze moeten niet alleen de code kunnen schrijven en begrijpen, maar ook het volledige spanningsveld er omheen. Ontwerp, gebruikerservaring, testen, distributie, en ga zo maar door. Natuurlijk hebben we al die kennis wel in huis, maar zoals bij ieder beroep zijn er ook taken die we minder leuk vinden om te doen. Dat gaat soms zelfs ten koste van de kwaliteit omdat juist die taken iets minder aandacht krijgen. Daar komt de kracht van de AI tools van dit moment om de hoek kijken.
Vibe coding, wat is dat nou?
Stel je eens voor dat je een assistent hebt die je helpt in je werk. Een assistent die je al het werk kan geven wat je zelf niet leuk vind om te doen, of waar je simpelweg geen tijd voor hebt. Dat werk leggen we nu dus neer bij onze AI tools. Deze tools klagen niet en gaan meteen voor je aan het werk. En het resultaat is verbluffend. Vibe coding is dus: Software ontwikkelen met behulp van AI.
Aan de ene kant lijkt het erop alsof we daarvan wat lui worden. We gaan natuurlijk steeds meer taken afgeven aan die AI tools en voeren op dit moment in de tijd nog de controlerende taak uit om te kijken of de code is zoals we verwacht hadden. Nou dat is het zeker. AI tools leren ook van bestaande software. Vrijwel iedere ontwikkelaar (of team) heeft zijn eigen stijl van programmeren. De AI tools van dit moment kunnen deze stijl al herkennen en zullen dus code voor je maken die perfect aansluit bij hetgeen al gemaakt hebt. Dit zorgt ervoor dat we zoveel vertrouwen opbouwen om te samenwerken met deze tools dat het ervoor zorgt dat, zeker in de toekomst, een groter deel van onze taken zullen worden neergelegd bij deze virtuele robots.
We zullen als IT-ers ook moeten zorgen dat we meegaan met deze evolutie. Wij zijn als engineers al vele jaren bezig met artificial intelligence en machine learning. Iets wat een paar jaar geleden nog wel echt werd gezien als 'de toekomst'. De ontwikkelingen nemen echter op dit moment zo'n enorme vaart dat het vrijwel onmogelijk wordt om al het nieuws bij te houden. Iedere week komt er weel een speler bij op het speelveld van AI en worden de modellen weer beter en sneller.
Vibe coding is ook leuk.
Als echte nerd ben ik ook gaan vibe coden. In eerste instantie natuurlijk sceptisch, maar dat veranderde al na de eerste experimenten. Je verteld letterlijk tegen je computer: "maak voor mij app die dit en dat doet" en vervolgens gaat hij voor je aan de slag. Je ziet allerlei bestanden die voor je gemaakt worden en de tool "praat" tegen je terug. Hij verteld je gewoon wat er allemaal gebeurd. De letters code vliegen over je scherm alsof je in the Matrix zit. Soms loopt hij tegen zaken aan waardoor hij nog wel even je hulp of toestemming nodig heeft om verder te gaan. Er moet bijvoorbeeld iets gedownload of geïnstalleerd worden. Als je dan aangeeft dat hij door mag gaan, dan wordt het allemaal voor je gedaan. Als hij klaar is en het blijkt te werken allemaal, dan is dat voor mij als nerd ook wel een soort van overwinning. Ik heb iets gemaakt zonder een regel code te schrijven.
Ik moet dit ook wel nuanceren want het is ook nog niet zo knap dat er helemaal geen tussenkomst van mensen meer nodig is. In mijn experimenten liep ik ook wel vaak tegen het feit aan dat het na een aantal momenten dat de tool in een soort van loop bleef hangen van problemen. Telkens heb ik gevraagd om een volgende stap te zetten in het ontwikkelen van software. Op een gegeven moment ontstaat er een keer een foutsituatie. Je kan gewoon de foutcode teruggeven aan de AI tool en die komt dan met een oplossing. Soms levert dat weer een andere fout op. Wanneer die opgelost is zit je misschien wel weer in de voorgaande foutsituatie. Er is dus nog werk aan de winkel voor al die large language models (LLM's) waar de tools gebruik van maken. Gelukkig kan je in de tools kiezen welke je wilt gebruiken, want waar vandaag misschien OpenIA (van ChatGPT) het beste model heeft, kan morgen het model van Claude of Google Gemini weer beter zijn.
Waarom Joomla modules?
Voor het website werk prefereer ik het Joomla CMS te gebruiken. Soms loop ik bij het maken van een website tegen iets aan waar ik dus een extensie (plugin of module) voor nodig heb. Natuurlijk zijn er duizenden van die extensies beschikbaar, maar die doen niet altijd precies wat je in gedachte hebt. Regelmatig vind ik ook wel de juiste extensie, maar die is dan weer commercieel of te complex voor mijn eindgebruikers. Op zo'n moment maak ik er gewoon een zelf. Als die dan klaar is deel ik die met de Joomla community op mijn websites en op de Joomla Extension Database.
Een ander voordeel in de context van dit verhaal is dat die Joomla modules meestal maar hele kleine mini applicaties zijn. Hierdoor was het voor mij een perfect middel om in te zetten voor mijn AI vibe coding experimenten. Er zaten nog wat ideetjes in mijn hoofd die ik prima als experiment kon gebruiken. Een module om sponsors weer te geven en een module om wat statische informatie van ingevulde formulieren weer te geven. Met de AI tools heb ik de basis wel kunnen leggen. Daarmee heb ik al veel tijd bespaard.
Conclusie
Nadat ik een poosje had gespeeld met vibe coding kwam ik wel tot de conclusie dat het gebruik van AI tools in ons werk niet meer weg te denken is. Ik ben ook meer AI gaan gebruiken voor andere zaken als het maken van content zoals afbeeldingen, audio en video. De afgelopen weken heb ik experimenten gedaan met het vibe coden van Joomla modules. Als ervaren ontwikkelaar merkte ik toch wel dat ik het daadwerkelijk afmaken van de modules nog wel zelf moest doen om ervoor te zorgen dat alles ook aan mijn eisen voldeed. En daarmee is natuurlijk een belangrijk ding gezegd. Het moet aan mijn hoge eisen voldoen, maar voor mensen die veel minder hoge eisen hebben kan al snel iets functioneels worden gemaakt. Wanneer we die kwaliteitseisen dus laten varen, dan kunnen we een heel groot deel van het werk laten verrichten door computers. Kwaliteit blijft voorlopig nog wel een ambacht.