speakr.blog

Thomas Huijzer

Thomas Huijzer

| 19 views

Vibecoding

Vibecoding is programmeren met een AI-agent zonder zelf een regel code te schrijven. Je geeft de AI-agent opdrachten en de agent genereert de code voor je. Hiermee had ik al eens wat tests gedaan, maar is het ook mogelijk om een compleet product te maken? En word ik als programmeur echt overbodig?

Een spelletje

Mijn eerste test was een spelletje in Javascript. Het doel van het spelletje is om een binnenvaartschip zo snel mogelijk door een rivier te manoeuvreren.

In eerste instantie ging het allemaal super snel. Het project werd heel snel in elkaar gezet, voorzien van een 3D-engine (ThreeJS) en landschap met rivier en de mogelijkheid om een schip te besturen.

Maar daarna begon de frustratie. Zodra je iets aan een agent vraagt waarover hij niets geleerd heeft, zie je dat de intelligentie ontbreekt. Blijkbaar weet een agent heel goed hoe je een auto moet besturen, maar van een schip weet het niets.

Door het op veel verschillende manieren te formulieren, enigszins uit te leggen en zelf veel hints te geven is het dan toch wel voor elkaar gekomen. Het resultaat is hier te vinden: https://thuijzer.nl/slootboot/

Een Mysql-manager

De volgende test was een C# Maui desktop-applicatie waarmee je databases kan beheren (Mysql, SqlLite en MsSsql).

Ook hier ging het opzetten van het project weer razendsnel. Je laat de agent eerst een specificatie maken van je eisen en wensen en daarna heb je binnen no-time een werkende desktop-applicatie.

Een popup waarin je een nieuwe verbinding kan maken en het opslaan van die verbinding ging ook erg soepel. De agent 'begreep' ook dat ik de wachtwoorden veilig wilde opslaan in een SqlLite-database en daarvoor werden de juiste bibliotheken gebruikt.

Maar de problemen begonnen bij het specificeren van het interface-ontwerp. Een agent 'ziet' niet wat het resultaat is van zijn gefabriceerde interface en het is daardoor soms ontzettend moeilijk om dit te sturen.

Je merkt ook heel goed dat, wanneer je dingen wilt hebben die wat afwijken van de standaard (dus wat een agent heeft geleerd), de agent vaak in een loop terecht komt waarbij de code soms alleen maar slechter wordt dan dat de problemen worden opgelost.

Een foto-editor op basis van nodes

Dan nog een test om een desktop-applicatie te maken waarmee je foto's kan bewerken door gebruik te maken van nodes. De bewerkingen zijn dus niet destructief en kunnen steeds worden aangepast. En wanneer de agent toch de code schrijft, waarom dan niet in een programmeertaal die erg snel is, maar waarvan ik zelf (nog) geen kennis van heb: __Rust__.

Ook hier werd het project weer heel snel opgezet. De specificatie werd gevolgd en stap voor stap kon ik het node-systeem toe laten voegen.

Maar ook hier werd het weer snel opgevolgd door frustraties. Er was een moment waarop de agent de layout van de nodes helemaal in de war schopte. En het was haast niet voor elkaar te krijgen om dit weer recht te breien. Steeds weer nieuwe chatvensters openen voor een verse context, steeds op andere manieren proberen uit te leggen wat er mis was, het lukte maar niet. Na lange tijd kreeg de agent het dan toch voor elkaar en konden we weer verder.

Het viel me op dat alle code in 1 bestand kwam te staan. En ik vroeg de agent of dit normaal was voor een Rust-project. Helaas, de agent begreep niet dat het een vraag was en begon de code direct op te splitsen in diverse onderdelen. Misschien aardig voor wanneer mensen verder zouden gaan met de code, maar het gevolg was dat de applicatie helemaal niet meer werkte. De agent kreeg de fouten ook niet meer opgelost en daardoor moest ik het project weer terugzetten naar een vorige status.

Geavanceerde zoekmachine

Mijn conclusie is (blijft) dat AI / LLM's een soort geavanceerde zoekmachines zijn. Wanneer je ze iets vraag waar ze geen weet van hebben is er geen intelligentie die op zoek kan gaan naar een oplossing. Het lijkt soms wel zo. Soms geeft een agent aan dat hij 'na denkt'. Maar uiteindelijk is dat nadenken niets anders dan proberen beter te zoeken. Zoals wij mensen ideeën en gedachten combineren kan een agent niet.

En ook qua snelheid lijkt het mooier dan het is. Er komen steeds meer onderzoeken naar buiten waaruit blijkt dat programmeurs gemiddeld geen snelheidswinst boeken door gebruik te maken van een agent. En een recent onderzoek toonde aan dat 94% van de bedrijven geen winst behaald uit het gebruiken van AI.

Een mooie, handige, bruikbare techniek? Zeker! Maar verwacht er niet te veel van. De hype wordt vooral de wereld in geholpen door aanbieders van AI-diensten die daar veel geld mee hopen te verdienen.