Vibe Coding met Agentic IDEs
Had je al van “Vibe Coding” gehoord? Het wil zeggen dat je gaat programmeren zonder zelf effectief de broncode in te typen. In jouw plaats zal een AI tool in je editor dit voor jou doen; je moet deze enkel nog instructies geven in natuurlijke taal.
Klinkt dit te mooi om waar te zijn? Wel, de waarheid zit momenteel nog wat in het midden. Een specifieke en complexe toepassing bouwen, helemaal vanaf nul, is inderdaad nog wat hoog gegrepen. Maar er zijn voorbeelden van eenvoudige webapplicaties die via een chat-prompt gebouwd werden en doen wat ze moeten doen. In deze blog-post zullen we “Agentic IDEs”, de AI tool waarmee je dit kan doen, verkennen, en we gaan dieper in op een product dat ik onlangs heb getest: de WindSurf IDE.
De rage van het moment: Agentic
Agents zijn, naar mijn mening, momenteel de belangrijkste manier waarop AI vooruitgang boekt. Het bouwen van een laag van nuttige tools en denkprocessen rondom een LLM (Large Language Model) biedt nog erg veel ruimte voor potentieel, daar waar zuivere taalmodellen op zich stilaan op een aantal limieten botsen.
In een vorige blogpost over Agents legde mijn collega Bert reeds kort uit wat een Agentic IDE is. Kort herhaald: een zogenaamde agent is een stukje AI dat autonoom of semi-autonoom, allerlei zaken kan doen (zoals b.v. tekstbestanden editeren; de voornaamste bezigheid bij het programmeren). Een Integrated Development Environment of IDE kennen we reeds: dat is de software die we gebruiken om code te schrijven, bestaande uit een tekst editor en daarnaast alle mogelijke extra tools om de code te compileren, uit te voeren, te refactoren, … , noem maar op. Mijn favoriete IDE is b.v. Intellij IDEA.
De term Agentic IDE slaat dan op een IDE, die, als één van de extra geïntegreerde tools, de functionaliteit zal bevatten om via het gebruik van AI allerlei zaken in jouw plaats te gaan doen. Typisch krijg je dan binnen de IDE een venster om te chatten met dit AI, en zal dit voor jou aan de slag gaan wanneer je er iets aan hebt gevraagd. Het grote verschil met de meer eenvoudige AI assistants is dat de agent daarbij zowat alle functionaliteit van de IDE kan gebruiken: allerlei bestanden editeren (niet enkel het bestand waar je zelf op dat moment in werkt), de code compileren en runnen, of zelfs uitrollen op een server, terminal commando’s uitvoeren, enz. Op deze manier werken, door enkel in het chatvenster te praten en de agent de rest te laten doen, noemen we het zogenaamde vibe coding.
Een paar voorbeelden
Met een klein beetje zoekwerk op het internet vinden we algauw een aantal voorbeelden van Agentic IDEs.
- https://bolt.new/ draait volledig op het web, en laat toe om volledige webtoepassingen te bouwen op basis van één prompt. Het platform is erg populair, zelfs al zijn er soms toch meerdere pogingen nodig (en dus toch eerder een hele conversatie dan één enkele prompt) om tot het beoogde resultaat te komen. Deze (niet volledig functionele) webshop, werd bijvoorbeeld na een conversatie met 5 complexer wordende prompts gebouwd: https://starlit-melba-287efe.netlify.app/products .
- GitHub CoPilot is allicht één van de bekendste. Deze geeft de IDE Visual Studio Code (VS Code) een nieuw elan met een AI dat voor je werkt, een beetje zoals “pair programming”. GitHub Copilot Studio.
- Codeium WindSurf, nog een andere Agentic IDE gebaseerd op VS Code, bespreken we verderop in iets meer detail. https://windsurf.com/editor .
- Ook Cursor is een IDE gebaseerd op VS Code en één van de meer bekende en populaire Agentic IDEs.
- https://cline.bot/ . Gebaseerd op – opnieuw – VS Code, en open source.
- De lijst gaat verder: Lovable, V0, Replit Agent, Devin, Trae, …
- New kid on the block (pas sinds enkele weken algemeen beschikbaar): IntelliJ Junie. Voor ons zeker interessant om in de toekomst nog verder uit te testen, aangezien hij is gebaseerd op IntelliJ IDEA.
Getest: Codeium WindSurf
Voor ik begon te testen met Codeium’s IDE, had ik nauwelijks ervaring met VS Code, de IDE waar Windsurf op is gebaseerd; dit bleek echter geen probleem! Na de installatie kreeg ik een idee voor een erg eenvoudige test: ik vroeg de IDE om voor mij een kleine tool te schrijven in Java, die zou gaan inloggen op confluence en op een bepaalde pagina de gegevens van een tabel uitlezen. Vervolgens zou de tool deze data in een nieuw Excel bestand gieten en dit opslaan op mijn pc.
De tool schoot goed uit de startblokken, maar er waren enkele euvels te overkomen. Het inloggen in confluence werkte b.v. niet met de inloggegevens die Windsurf mij tijdens de initiële conversatie had gevraagd te voorzien. Na een kleine opzoeking op confluence zelf, had ik een idee van hoe het inloggen op de site moest werken voor geprogrammeerde tools, en kon ik dit aan WindSurf vertellen. De IDE maakte prompt de nodige wijzigingen en daarna werkte het wel. Na nog een kleine conversatie om wat details van de toepassing naar mijn wensen te krijgen, had ik, al bij al op een uurtje, een werkende versie van mijn gevraagde tool.

Een tweede test, waarbij ik een grotere toepassing vroeg in verschillende componenten (api server + web frontend, enz.), ben ik gestaakt wegens een gebrek aan credits in de gratis versie. Het bleek wel dat een agentic IDE hier wat het overzicht kwijtraakt en steken laat vallen door de omvang van het project.
Als derde test ging ik, gewapend met een commerciële licentie en ondersteund door een bekwame architect, aan de slag op bestaande code van een legacy project. Het betreft een vrij oud Java project met een monolitische structuur en verouderde afhankelijkheden en werkwijzen. Althans, dat was één deel van het gegeven. De applicatie wordt momenteel herschreven bij Smals, en een deel van de nieuwe code was ook reeds beschikbaar. Het doel van de test was om WindSurf een volledige feature te laten toevoegen in de nieuwe broncode, gebaseerd op al deze reeds bestaande code (legacy + nieuw).
De nieuwe architectuur van deze toepassing was extreem modulair (een zogenaamde onion architecture) en we moesten de IDE geregeld bijsturen omdat deze niet in alle modules tegelijk de juiste toevoegingen en wijzigingen voorzag. Op een bepaald moment moesten we hem ook manueel wat op weg helpen bij de zoektocht naar een stukje functionaliteit in de oude versie van het project, om dit te kunnen herimplementeren in de nieuwe versie. Maar al bij al hadden we na twee uur vibe coding de feature toegevoegd; iets wat anders een vervelend en repetitief (doch niet op een traditionele manier te automatiseren) karwij zou zijn voor een developer.
Hoe kan het nu nóg beter?
Zoals we in de vorige sectie zagen, bieden agentic IDEs heel wat mogelijkheden om programmeerwerk in te korten en deels te automatiseren, maar verloopt het toch niet altijd van een leien dakje, omdat de agent zich vergist, de dingen niet precies doet hoe we willen, of zaken vergeet te doen. Misschien een beetje zoals een onervaren programmeur? Het probleem stelt zich ook des te meer naarmate het project groter wordt.
We vragen ons dan uiteraard af: hoe kunnen we dit verbeteren? We zijn echter niet alleen; op het web hebben reeds andere mensen hierover nagedacht, en deze bevestigen wat we reeds vermoedden: er moet meer en betere context worden voorzien om de agent wegwijs te maken in wat we eigenlijk willen. Dit kan op verschillende manieren: je kan een lijst zaken toevoegen aan de prompt, en/of je voorziet een bestand in het project, met een waslijst aan extra instructies, en/of je voegt in elke folder van een bestaand project een bestand toe met nuttige info over die folder, en je doet dit op een hiërarchische manier voor subfolders. Eigenlijk is dit een soort van bewegwijzering van je project, op maat van het AI.
Het is uiteraard wel een pak werk, al die context voorzien. Maar niet getreurd: het is waarschijnlijk goed mogelijk om het AI dit eerst zelf te laten doen in een voorbereidende stap. Ondertussen zijn er zelfs al commerciële tools hiervoor te vinden, die eveneens als agents optreden en hiervoor op de achtergrond óók van een LLM gebruik maken.
Bestaande code documenteren en beter begrijpbaar maken op deze manier, is nuttig voor een Agentic IDE, maar ook voor menselijke developers! Dit wordt de volgende onderzoekspiste in wat AI kan doen voor het programmeren…
Conclusie
Agentic IDEs zijn momenteel de ultieme incarnatie van door AI geassisteerd programmeren. Ze gaan een stuk verder dan enkel assisteren en kunnen in jouw plaats coderen, alsof je tegen een (onervaren) developer praat en deze voor jou het werk doet. Vibe Coding kan in de nabije toekomst een heel stuk van ons werk overnemen!
De enige nuance, die we eigenlijk altijd moeten maken bij AI: het is geen magie, het weet niet vanzelf precies wat er moet gebeuren, en je zal moeten bijsturen en context geven. Garbage in – Garbage out.
Er is dus zeker nog ruimte voor verbetering , maar als we zien hoe snel de technologie evolueert, zou die wel eens snel kunnen komen…
_________________________
Dit is een ingezonden bijdrage van Koen Vanderkimpen, IT consultant bij Smals Research. Dit artikel werd geschreven in eigen naam en neemt geen standpunt in namens Smals.