Ik bedoel niet dat vibe coding puur slecht is, sorry als dat zo overkwam. Zoals ik hier elders schreef heb ik wel met Cursor en Claude Code gespeeld, ik wilde een tijdje terug wat dashboards maken in mijn eentje. Normaal programmeer ik nog maar weinig zelf, maar ik review wel code en help wel eens bugs ontdekken of oplossen in code die anderen voor onze projecten schrijven.
Ik denk wel dat het ongeschikt is voor het from-scratch programmeren van kritieke code, omdat code controleren qua cognitieve capaciteit net zoveel als of zwaarder is dan het produceren. Je kunt het wel inzetten om suggesties te doen of je eigen code te bekritiseren.
Echter is de meeste code die geproduceerd wordt meer richting simpele scripts dan kritieke code, daar is het kei nuttig voor denk ik. Ik ben er zelfs van overtuigd dat jezelf aanleren hoe dit werkt nuttig is voor vrijwel iedereen die computerwerk doet/gaat doen. Het succes van AI zal ten eerste zitten in toename van individuele productiviteit van mensen die goed overweg kunnen met AI-tools. Voor echte automatisatie zit je nog altijd met een ontwikkeltraject zoals dat bij machine learning-implementaties al het geval was. De duur van zulke projecten is wel afgenomen maar is nog steeds substantieel.
De probabilistische werking van LLMs is wel cruciaal om mee te nemen in automatiseringsprojecten. Mooi als OpenAI nu ‘structured outputs’ beter op de rails heeft, toen ze die functie vorig jaar introduceerde stond het internet gelijk vol van voorbeelden van hoe het toch niet werkte. Als je correcte JSON nodig hebt dan moet je gewoon met een parser controleren of de syntax juist is. Als het incorrect is laat je de LLM het corrigeren of opnieuw doen. De kans op correcte output is hoog genoeg dat het onwaarschijnlijk heel veel pogingen nodig heeft het goed te krijgen. Je kunt zelf nog kiezen of je een Monte Carlo of Las Vegas implementatie er van maakt (garanderen van eindigheid of van correctheid; beide is niet tegelijk mogelijk bij randomized algorithms).
Overigens, probabilistisch (=stochastisch) en statistisch is niet hetzelfde. Statistisch betekent dat het gebaseerd is op tellen, dat verwijst naar de data waarop het getraind is. Probabilistisch betekent dat de output niet vast staat. Bij LLMs worden willekeurige getallen gebruikt om volgende woorden te selecteren, waardoor bij exact dezelfde input de antwoorden telkens verschillend kunnen zijn (ja je kunt dit onderdrukken door de ‘temperatuur’ naar 0 te zetten, maar dat is meestal onwenselijk, zeker bij agentic gebruik).
Als laatste, technisch gezien voorspellen LLMs slechts het volgende woord, maar ik ben helemaal akkoord dat dat inderdaad een heel slechte voorstelling is van de capaciteiten van deze systemen. Dit onderzoek van Anthropic is nu het meest bekende dat aantoont hoe systemen ‘vooruit denken’:
https://www.anthropic.com/news/tracing-thoughts-language-model . Ik kan me niet 100% vinden in hun interpretatie, maar interessant is het zeker.