Remco
Door Remco
20 september 20245 min. leestijd

De toekomst van softwareontwikkeling
samenwerken met AI

AIWorkshopSoftware Development

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?

AI zal je nóóit zeggen dat het iets niet weet.

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.

  • Codegeneratie

    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 verandert 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 Woordenboek · In het kortlintingLinting is het automatisch controleren van broncode op mogelijke fouten en afwijkingen van afgesproken coderegels, zonder de applicatie uit te voeren. De tool die deze controle doet, heet een linter.Lees meer⁠ 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).

Bij de meeste professionele projecten blijft de developer onmisbaar.

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 Woordenboek · In het kortcodebaseEen codebase is de verzameling broncode waaruit een softwareproduct of onderdeel wordt gebouwd en onderhouden.Lees meer⁠ 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.

Meer weten over AI?

Ewout heeft een mini-serie met korte videos over de rol van AI in software ontwikkeling gemaakt. Inclusief tips en tricks over hoe AI wel, of juist niet, in te zetten. Je kan ze vinden op zijn LinkedIn-pagina.

Bekijk de mini-serie over AI op LinkedIn

Ewout

Contactpersoon: Ewout

Samenwerken?

Heb je een softwarevraag of een project in gedachten? Neem contact op met Ewout. Samen bespreken we wat je nodig hebt en hoe we kunnen helpen.

CONTACT

Neem contact met ons op

Heb je een vraag of wil je sparren over je software? Laat je gegevens achter, dan nemen we snel contact met je op.