BLOG – Oplossingen voor het automatisch genereren van code krijgen tegenwoordig veel aandacht. De ontwikkelingen van GitHub Copilot, OpenAI Codex, AWS CodeWhisperer, of Meta’s Code Llama leiden al tot discussies over de relevantie en meerwaarde van low-code-platformen. De onvermijdelijke vraag is dan: zal de evolutie van ontwikkeltools low-code-platformen uiteindelijk overbodig maken?
De verwachtingen die we hebben van de rol van ai bij softwareontwikkeling zijn hoog. Zo laat onderzoek onder Nederlandse bedrijven zien dat bijna driekwart denkt dat er door ai sneller (en goedkoper) kan worden ontwikkeld. Je kunt ook niet ontkennen dat de mogelijkheden van de nieuwe ai-gedreven tools indrukwekkend zijn. Ze zijn sterk in het genereren van documentatie, intelligente auto-aanvulling en het schrijven van stukjes code en algoritmes.
Ai-ontwikkeltools zijn dus zeker interessante hulpmiddelen en kunnen toegevoegde waarde hebben. Alleen moet je dit wel in de juiste context en proporties zien. Het is namelijk niet reëel om low-code en codegeneratie met ai met elkaar te vergelijken.
Code snippets
Zo levert codegeneratie met ai slechts een deel van wat low-code-platformen doen: alleen code snippets. Terwijl low-code-platformen een volledige oplossing bieden voor het ontwikkelen, beheren en runnen van applicaties, inclusief infrastructuur én allerlei out-of-the-box ‘non-functional requirements’ om te voldoen aan eisen op het gebied van beveiliging, schaalbaarheid en onderhoud.
Bugs
Vanuit het oogpunt van vaardigheden maakt low-code de ontwikkeling van full-stack applicaties met minimale technische kennis mogelijk door de toegankelijkheid en gebruiksvriendelijkheid, terwijl generatieve ai (gen-ai), hoewel nuttig voor jonge ontwikkelaars, zonder een diepgaand begrip van de code bugs met zich mee kan brengen.
Onderhoud en duurzaamheid applicaties
Gen-ai brengt verder het risico met zich mee dat de code gecompliceerder en dichter wordt, waardoor correctief en evolutionair onderhoud veel tijdrovender wordt. Ook optimaliseert low-code de levenscyclus van applicaties, van creatie tot implementatie, terwijl gen-ai juist complexiteit met zich meebrengt door mogelijke bugs, kwetsbaarheden en kwesties rond intellectueel eigendom te introduceren.
Kwetsbaarheden
Een ander belangrijk verschil is de manier waarop security is gewaarborgd. Code die wordt gegenereerd door ai-tools kan kwetsbaarheden bevatten, omdat deze tools niet zijn uitgerust met de beste beveiliging. Maar liefst veertig procent van de programma’s die met GitHub zijn geschreven bevatten beveiligingslekken. Een ander onderzoek van Cornell University, laat zien dat 62 procent van de gegenereerde code onjuist api-gebruik bevat. De meeste low-code-platformen bieden juist security-by-design, waar het platform zelf zorgdraagt voor veilige code door allerhande security best practices te integreren.
Het is verder cruciaal te realiseren dat naarmate de omvang van de gegenereerde code toeneemt, het risico op fouten, foutieve extrapolaties en misverstanden ook groter wordt. Bovendien is de time-to-market niet vergelijkbaar met low-code, die door visuele abstractie en reductie van code een twee tot zes keer snellere implementatie mogelijk maakt. Ten slotte kan gen-ai complexe projecten verlengen vanwege de noodzaak om de gegenereerde code te begrijpen en te debuggen.
Omarmen
Het voorgaande geeft aan dat hoewel ai-tools veel kunnen toevoegen, ze geen vervanging zijn van low-code. Wel kunnen ze meerwaarde hebben. Je ziet dan ook dat low-code-platformen gen-ai juist omarmen en veelvuldig in de platformen opnemen. Low-code-oplossingen zijn immers ontworpen om de ontwikkeling van full-stack-applicaties te versnellen door middel van visuele modellering, en door de inzet van gen-ai wordt die automatisering en industrialisatie alleen maar rijker en sneller. Zo maken low-code-oplossingen het mogelijk gen-ai te leren om met één klik veilige, schaalbare en inzetbare applicatiemodellen te creëren.
De toekomst van applicatieontwikkeling gaat dan ook in de richting van een ‘Midjourney’-benadering, waarbij mensen via een eenvoudige instructie ai kunnen vragen functionele applicaties te genereren waarbij de low-code op de achtergrond verantwoordelijk is voor de performance, security en schaalbaarheid. Een mooie krachtenbundeling waarbij wat voorheen sciencefiction leek voor applicatie-ontwikkeling, werkelijkheid wordt.
Wouter Baeten is manager solution architecture bij OutSystems