Tijdens onze maandelijkse workshops delen we kennis en oefenen we met het toepassen van nieuwe technologieën. Deze keer dook het team in de wereld van Artificial Intelligence: hoe kan AI ons werk als developers ondersteunen en waar liggen de grenzen?
De toekomst van softwareontwikkeling
Samenwerken met AI
Geschreven door Remco
Afgelopen vrijdag was het zover: een nieuwe workshop bij 10KB met als thema Artificial Intelligence (AI). Het doel? Niet om de wereld over te nemen met slimme robots, maar om AI in te zetten als assistent tijdens het programmeren.
Ons oefenproject
Een simpelere variant van Squaredle (een woordzoeker) maken. We maken hierbij gebruik van de Cursor Editor: een fork van Visual Studio Code waarin drie Advanced language models geïntegreerd zijn: GPT-3.5, GPT-4o, en Claude 3.5 Sonnet. Drie AI’s in één editor met krachtige functies zoals:
- AI-gestuurde Autocompletion: Cursor voorspelt niet alleen woorden, maar hele regels code.
- Code Generatie: Het kan codefragmenten genereren op basis van prompts, wat vooral handig is voor het snel implementeren van repetitieve- of routinetaken.
- AI Debugging: Cursor helpt bij het opsporen en snel oplossen van bugs door de code te analyseren en suggesties te doen voor verbeteringen en oplossingen.
- Codebase-Bewuste Chat: De ingebouwde AI-assistent kan de hele codebase doorzoeken, waardoor het mogelijk wordt om vragen te stellen over specifieke functies, bestanden of bugs. Je kunt ook codeblokken markeren voor meer gerichte antwoorden.
Oftewel, allemaal functies die het ontwikkelen van software ogenschijnlijk makkelijker, sneller en beter maken. Reden genoeg om te kijken of het voor ons werkt!
AI en coderen: hoe goed werkt dat nou?
Het duurt niet lang voordat we ontdekken hoe krachtig deze AI-tools daadwerkelijk zijn. Via de 'Composer’ feature van Cursor kun je code laten genereren in een razendsnel tempo. "Verplaats deze variabele voor me" – meteen gedaan. "Fix dit foutje" – zo opgelost. Het lijkt er bijna op dat je zonder te kijken naar de code, gewoon een werkende app kan bouwen. En eerlijk: dat gaat eigenlijk verrassend goed. AI doet z’n ding en geeft je zelfs sjablonen en voorbeelden die je als template kan gebruiken voor de basis van een project. En dat alles met een chronisch beleefde: "Certainly!"
Te goed om waar te zijn?
Nu komt het grappige (of frustrerende, afhankelijk van je perspectief): AI is té behulpzaam en zich niet bewust van diens eigen limieten. Zo kan het zijn dat je AI een kleine tweak vraagt, maar er net iets te veel verandert. Dan werkt je app wel, maar achter de schermen is er ineens van alles anders (en niet altijd ten goede). Het punt is: AI probeert zo hard om je te helpen dat het soms dingen veranderd die je liever met rust had gelaten.
Wat betreft de limieten: AI zal je nóóit zeggen dat het iets niet weet. "I don't know what you mean." of "I'm not capable of doing this"" zijn woorden die simpelweg niet in het vocabulaire staan. Je krijgt dus altijd een antwoord, maar dat betekent niet dat het altijd het goede antwoord is. De AI heeft helaas niet gehoord van clean code, en gooit zichzelf niet door de linter als deze niet geïnstalleerd is.
AI is je collega, niet je baas
Na deze workshop is één ding duidelijk: AI gaat niet onze banen overnemen. Het is prima in staat om taken op het niveau van een junior functie te verrichten, maar je zal het nog wel goed in de gaten moet houden. Ja, het werkt efficiënt en ja, het neemt repetitieve taken uit handen. Maar bij de meeste professionele projecten blijft de developer onmisbaar. AI geeft goeie tips, maar je moet nog steeds begrijpen wat je aan het doen bent (en het doorhebben wanneer de AI het limiet van hun capaciteit heeft bereikt).
Wat betekent dit voor de toekomst?
De integratie van AI in programma’s zoals Cursor Editor heeft grote implicaties voor de toekomst. AI biedt uitstekende ondersteuning voor de basis, maar menselijke expertise blijft onmisbaar voor het controleren en verfijnen van de gegenereerde code. Bovendien moet je ook weten wat je de AI tools precies moet vragen, om juist dat resultaat te krijgen wat je voor ogen hebt.
Potentieel positieve ontwikkeling:
Omdat je tickets sneller af kan ronden, houd je meer tijd over om de kwaliteit van je code te verbeteren. Je hebt simpelweg meer tijd om goede tests te schrijven en de algehele stabiliteit van je codebase te verbeteren.
Potentieel negatieve ontwikkeling:
Omdat AI juist zo goed is in die taken op junior niveau, betekent dat misschien wel dat toekomstige junior ontwikkelaars minder gelegenheid zullen hebben om te leren en ervaring op te doen. Bedrijven zullen deze taken immers eerder uitbesteden aan AI. Dit kan een uitdaging vormen voor nieuwkomers in de industrie, die nu misschien minder 'hands-on' ervaring opdoen in de vroege fase van hun carrière. Bovendien wordt het dan in de toekomst misschien nog moeilijker om developers met ervaring te vinden.
Key takeaways:
- AI kan code voor je schrijven, bugs vinden en hele projecten opzetten, maar je moet altijd zelf op de details letten.
- Kleine projecten? AI kan het (bijna) in zijn eentje doen. Grotere, complexe apps? Daar is het (nog) minder geschikt.
- Laat AI nooit ongetemd los op je project zonder toezicht, tenzij je graag verrast wordt door mysterieuze bugs.